当前位置:  技术问答>java相关

scjp考题,请大家帮助一下。

    来源: 互联网  发布时间:2015-09-26

    本文导语:  public class ABC { public static void main(String[] args)  {  int a, b, c;  if(true) a = 2; if(2 == 2) b = 2; if(b == 2) c = 2;  System.out.println(a+","+b+","+c);  } }  为什么会提示c没有初始化? | 因...

public class ABC

{

public static void main(String[] args) 



int a, b, c; 

if(true) a = 2;

if(2 == 2) b = 2;

if(b == 2) c = 2; 

System.out.println(a+","+b+","+c); 

}


为什么会提示c没有初始化?

|
因为c在if语句中

|
如果b != 2 时c 就没有被初始化

|
局部变量要求必须初始化.

|
全局变量系统自动初始化,
但是局部变量一定要自己初始化,否则要抛出异常!

|
int c;
if(b==2){c = 2;}
因为b!=2,所以c未赋初值2而只是被申明。

|
真的挺怪的。不知道为什么。
但是如果后面加个
else  c=2;
就能正常编译运行了。

好象是局部变量即使附值了,放在if语句里也不会认为它有值,
我瞎乱说的。:)

|
if(b == 2) c = 2;
后面加上 else c=2;就可以运行了

编译的时候 并不知道b==2为 true
但是 知道2==2为 true

|
if(b == 2) c = 2; 
这句话不成立,c没被付值
所以提示没初始化。

|
同意楼上的看法。这是编译机制的问题

|
编译器要确保局部变量必须被初始化,而编译器又没聪明到知道b就等于2,所以bcdavid(莉莉) 的说法是对的

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 小弟想考scjp,贡献一些scjp考试的网址?
  • 我一个伙计考过SCJP一个多月了,怎么SCJP的证书还没有来呀?到哪里问去呀?
  • 过了SCJP和没过SCJP的都请进来,谢谢!
  • 我一直搞不清什么sl275与scjp1.2,scjp1.4的关系?那位能说说么
  • [提议] 既然考scjp的人这么对,提议设立scjp专栏,响应的进来领分!
  • 英文不是很好,为了考SCJP,好多地方看英文书,概念什么的比较模糊,哪有详细的中文的Java语言教程呀?最好和SCJP想符合的,别告诉我《Think in Java》呀!那本书我烦透了!
  • 检验你的SCJP能力!!!来自SUN的SCJP题库中的一道经典线程题目,你能做出正确的答案吗???
  • 谁有scjp练习题,越新越好?谢了
  • 险过scjp
  • 50分求助:哪儿能搞到SCJP的教程资料与试题资料!!!!!
  • 请推荐一些SCJP认证书籍和其他资料
  • 求助!本人下个星期考SCJP急需好的题库!高分求教!
  • —— SCJP认证相关问题 ——
  • SCJP
  • 请问scjp/scjd和高程比,哪个分量重些啊?
  • *考过scjp的给个意见*
  • 在考SCJP中,很多人说的104和147指的是什么?
  • 通过了SCJP认证以后,还能干什么?
  • 寻找scjp认证考试方面的资料,培训资料和试题,谢谢!
  • 有近期过SCJP的朋友么?请进来.........


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3