猿问
变量或作用域相关的问题
int x;
int y = 3;
if(y < 4) {
x = 2;
}
System.out.print(x);
这个代码为什么会报错?
噜噜哒
浏览 397
回答 2
2回答
慕尼黑5688855
虽然y已经赋值为3了,判断y<4时,编译器仍然无法确定这个时候y还是3(比如多线程改变了y的值),所以y<4不一定是true,这样的话x无法初始化,编译器报错。可以改成:final y = 3;这样编译器会知道y的值不会改变, 也就能确认y<4一定是true,x能初始化
0
0
0
繁星coding
x并没有初始化,这里并不会报错,后面直接使用x就会报错。
0
0
0
随时随地看视频
慕课网APP
相关分类
Java
我要回答