为什么此代码没有给出“无法访问的代码”错误?因为布尔值只能是真或假。
public static void main(String args[]) {
boolean a = false;
if (a == true) {
} else if (a == false) {
} else {
int c = 0;
c = c + 1;
}
}
为什么此代码没有给出“无法访问的代码”错误?因为布尔值只能是真或假。
public static void main(String args[]) {
boolean a = false;
if (a == true) {
} else if (a == false) {
} else {
int c = 0;
c = c + 1;
}
}
如果由于无法访问而无法执行语句,则这是编译时错误。
和
如果 if-then-else 语句可达,则 else 语句可达。
您的 if-then-else 语句是可访问的。因此,根据定义,编译器认为 else 语句是可访问的。
注意:有趣的是,以下代码也可以编译
// This is ok
if (false) { /* do something */ }
这不是真的while
// This will not compile
while (false) { /* do something */ }
因为可达性定义while
不同(强调我的):
如果 while 语句可访问且条件表达式不是值为 false 的常量表达式,则包含的语句是可访问的。