在java中编译时是否计算条件语句if(true)和if(false)?

时间:2015-06-08 14:41:43

标签: java if-statement while-loop compiler-optimization

以下代码成功编译:

int x;
if(true)
  x=3;
System.out.println(x);

这是否意味着在编译时评估if条件?如果是这样,为什么以下代码不会抛出无法到达的语句错误?

if(true)
  return;
return;  //No error

有什么区别?

编辑:请注意我的查询不同,因为我没有将'if'与'while'进行比较。相反,我在两种不同情况下比较相同的if(true)语句,在第一种情况下,它似乎在编译时进行评估,而在第二种情况下,它似乎在运行时进行评估。

0 个答案:

没有答案