代码之家  ›  专栏  ›  技术社区  ›  rahs

Java编译器搜索不会仅仅因为循环中存在中断而给出无法访问的语句错误吗?[副本]

  •  0
  • rahs  · 技术社区  · 7 年前

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

      while(true)
      {
      }
      return null;
    

    虽然这并不存在任何编译问题,但我们知道它相当于上面的代码段:

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

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

    1 回复  |  直到 7 年前
        1
  •  -1
  •   DudeDoesThings    7 年前

    编译器不计算条件语句中的表达式。即使你写了:

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

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

    推荐文章