public class test{
public static void main(String[] args){
int a;
int x=1;
if(x>1) a = 10;
System.out.println(a); /* 换上这段就可以。。
if(true) a = 10;
System.out.println(a);
*/
}
}
编译报错,说是尚未初始化变量,但是换上注释里的就可以
刚学java,觉得这两段语法结构差不多啊,请高手解答,越详细越好
解决方案 »
- 求助:如何获得FTP文件的最后修改时间,精确到秒
- 被eclipse搞晕了,怎么就编译出错了。明显这个包import进来了。
- 跪求高手帮忙!!!
- PerparedStatement 和Statement的区别?
- 请问如何用java实现类似windows屏保-飞越星空的程序,请指教啊!!!
- 各位大哥,明年毕业的小弟天要过两天就要和一家学校签约了,这家学校签约的方式非常奇怪,他们说签协议时要付500元保证金,这样即便你明
- 高手请进,在线等待。
- 关于junit,structs,ant的相关问题。
- 一个关于rmic如何作用的问题
- 如何实现对并口的读写,是否和串口的读写一样那?请高手赐教!
- 有关java 继承和多态的问题
- 恳求:java中如何实现数字的集合的所有组合,并将所有数字的组合列举出来?谢谢!
if(x>1){
a = 10;
System.out.println(a);
}
public class test{
public static void main(String[] args){
int a;
int x=2; --此处改正
if(x>1) a = 10;
System.out.println(a); /* 换上这段就可以。。
if(true) a = 10;
System.out.println(a);
*/
}
}
x等于多少不重要,只要第一段的“判断语句”不是直接写TRUE,就会有这个问题。
System.out.println(a);
这样的话(x>1)有可能不成立,a = 10;不一定执行。if(true) a = 10;
条件一定成立,a = 10; 一定执行。就是这个区别
而一旦if不成立 则a没有初始化 编译器就是检查出有产生这种错误可能所以报错[/size][/size]
而一旦if不成立 则a没有初始化 编译器就是检查出有产生这种错误可能所以报错