以下代码成功编译:
int x;
if(true)
x=3;
System.out.println(x);
这是否意味着在编译时评估if条件?如果是这样,为什么以下代码不会抛出无法到达的语句错误?
if(true)
return;
return; //No error
有什么区别?
编辑:请注意我的查询不同,因为我没有将'if'与'while'进行比较。相反,我在两种不同情况下比较相同的if(true)语句,在第一种情况下,它似乎在编译时进行评估,而在第二种情况下,它似乎在运行时进行评估。