[问题] 一题跟变量初始化有关的问题

楼主: awpadam (adam!)   2020-07-25 21:33:15
public class Test {
static int result;
public static void main(String[] args) {
double x ;
if( result == 0 ){
x = 10.0;
System.out.println("123");
}
System.out.print(x);
}
}
最后要印出x的值的时候会出现编译错误
说 x 没有初始化
一开始我怀疑if没有进入
所以print 123
结果有印出123,表示有进入
然后我把if的条件直接改成true就可以印出x
请问这是什么原因呢?
先谢谢各位高手的帮忙~
作者: PTTTTTTTT (1P8T)   2020-07-25 21:41:00
local variable 没有初始值 只有class variable有
作者: gasbomb (虚空雷神兽)   2020-07-25 22:05:00
你加个else {x = 0.0} 应该就会过了编译器只要抓到区域变量有可能尚未初始化就不会让你过以你的例子来说 万一 result != 0, x 就不会初始化
作者: ssccg (23)   2020-07-25 22:16:00
必须是所有路径都有初始化才叫有初始化
作者: swallowcc (guest)   2020-07-25 22:44:00
那问你个问题,如果你的 result 不等于零, 你期望double会印出来什么东西呢?x才对,不是double,用错词。

Links booklink

Contact Us: admin [ a t ] ucptt.com