-1

这两个循环是一样的吗?出于某种原因,第二个循环是一对一的,我不知道为什么。

while ( !b && ++n < WORD_COUNT ) b = mWords[n];
n++;
while ( !b && n < WORD_COUNT ) {
    b = mWords[n];
    n++;
}
4

1 回答 1

2

当谓词b不成功时,可以在第一种形式中应用逻辑短路,n并且可以跳过最后的增量。

在第二种形式中,增量发生在谓词b被评估之前,因此n当循环退出时,增量发生在一个。

于 2020-08-03T06:27:25.123 回答