gpt4 book ai didi

java - while(false) 导致unreachable语句编译错误

转载 作者:搜寻专家 更新时间:2023-10-30 19:43:39 25 4
gpt4 key购买 nike

我最近在发布之前从我们的代码库中删除了一段代码,并使用了 if(false) 语句来阻止执行:

if (false) {
ArrayList<String> list = new ArrayList<String>();
...
}

这可以很好地编译并且会阻止有问题的代码块的执行(无论对错,这不是当前的论点)。

但是,有点意外,我将上面的 block 更改为:

while (false) {
ArrayList<String> list = new ArrayList<String>();
...
}

并收到无法访问的语句编译错误。

我理解编译错误并理解原因,但是,我正在努力理解这两个 block 之间的区别以及为什么前者编译正常而后者在它们都有无法访问的语句时编译不正常。

最佳答案

在这两种情况下,编译器都应该报错,因为大括号之间的代码基本上没有意义,但是 if (false) 保留在 Java 中以模拟 C/C++预处理器 #if 0,一种非常常见的禁用部分代码以进行测试或调试的方法。

编辑:供引用,“条件编译”chapter 14.21 的末尾有详细说明Java 语言规范。

关于java - while(false) 导致unreachable语句编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16443038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com