为什么不能在if语句中声明变量?
以下Java代码无法编译。
int a = 0;if(a == 1) {
int b = 0;
}
if(a == 1) {
b = 1;
}
为什么?在没有b
先声明的情况下,没有代码路径可导致程序将1分配给该路径。
我想到b
的范围可能仅限于第一条if
陈述,但后来我不明白为什么。如果我真的不想b
不必要地声明以提高性能怎么办?我不喜欢声明后不使用变量。
(您可能想争论一下,我不可以在第二条if
语句中简单地声明b ,在这种情况下,请想象一下它可能在其他地方处于循环中。)
回答:
为什么?如果没有先声明,没有代码路径可以导致程序将1分配给b。
没错,但是编译器不知道这一点。编译器不执行代码。编译器仅转换为字节码,而不计算表达式。
以上是 为什么不能在if语句中声明变量? 的全部内容, 来源链接: utcz.com/qa/425534.html