变量或作用域相关的问题

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&nbsp;y&nbsp;=&nbsp;3;这样编译器会知道y的值不会改变, 也就能确认y<4一定是true,x能初始化

繁星coding

x并没有初始化,这里并不会报错,后面直接使用x就会报错。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java