为了账号安全,请及时绑定邮箱和手机立即绑定

变量或作用域相关的问题

变量或作用域相关的问题

噜噜哒 2019-03-07 10:11:14
int x; int y = 3; if(y < 4) {     x = 2; } System.out.print(x);这个代码为什么会报错?
查看完整描述

2 回答

?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

虽然y已经赋值为3了,判断y<4时,编译器仍然无法确定这个时候y还是3(比如多线程改变了y的值),所以y<4不一定是true,这样的话x无法初始化,编译器报错。
可以改成:

final y = 3;

这样编译器会知道y的值不会改变, 也就能确认y<4一定是true,x能初始化


查看完整回答
反对 回复 2019-04-24
?
繁星coding

TA贡献1797条经验 获得超4个赞

x并没有初始化,这里并不会报错,后面直接使用x就会报错。

https://img1.sycdn.imooc.com//5cbfc5310001720504980229.jpg

查看完整回答
反对 回复 2019-04-24
  • 2 回答
  • 0 关注
  • 392 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信