猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
变量或作用域相关的问题
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,查看更多内容
随时随地看视频
慕课网APP
相关分类
Java
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续