gpt4 book ai didi

java - ;在条件结束时导致意外行为

转载 作者:行者123 更新时间:2023-12-02 07:37:35 26 4
gpt4 key购买 nike

刚刚发现此代码中的一个错误:

    for(String link : tempList1){
if(!tempList2.contains(link));{
listToPopulate.add(link);
}
}

“;” if(!tempList2.contains(link)) 末尾的条件会导致条件评估为 true,即使它应该为 false。为什么会出现这种情况?

修复方法是删除“;”

最佳答案

编译器会看到一个 if 条件,后跟一个独立的 block 。使用标准缩进,它看起来像这样:

for(String link : tempList1){
if(!tempList2.contains(link))
; // ; is a no-op statement.
{
listToPopulate.add(link);
}
}

http://en.wikipedia.org/wiki/NOP#NOP_code

The simplest possible statement in C that behaves like a NOP is the so called null statement, which is just a semi-colon in a context requiring a statement.

Java 从 C 继承了这种语法。

关于java - ;在条件结束时导致意外行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8928427/

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