Java编译器搜索是否仅由于循环中存在中断而不会给出无法到达的语句错误?

时间:2018-10-01 23:10:01

标签: java loops compilation break

这不能编译,给出一个unreachable statement错误:

  while(true)
  {
  }
  return null;

尽管我们知道它与上面的代码段等效,但它没有任何编译问题:

  while(true)
  {
   if(4>5)
       break;
  }
  return null;

编译器是否只是在搜索break语句,并认为循环可以终止,所以不必担心吗?

1 个答案:

答案 0 :(得分:-1)

编译器不评估条件语句中的表达式。即使您写:

while (true) {
    if (false) {
        break;
    }
}

它不会被检测为无限循环。