背景
我正在阅读一个旧的C++底层,我已经躺在床上几年。在阅读某一章时,碰巧遇到了“继续”声明。我读了书中有关它的信息;然而,这本书在细节方面略有欠缺。我好奇,想测试继续声明,看看我是否可以自己了解更多关于它的内容(虽然它现在可能已经过时了,但我仍然很好奇它是如何工作的)。C++继续声明混淆
问题
我读了continue语句“导致程序跳过循环的剩余部分在当前迭代中,仿佛已经达到了语句块的结尾,使其跳到以下迭代开始 - (cplusplus.com)“
有了这样说,我构建这个简单的程序来测试它:
#include <iostream>
int main(void) {
unsigned short int amount = 100;
unsigned short int container[5] = {amount , 0, 0, 0, 0,};
while(!(container[0]==90))
{
if(container[0]==97) continue;
std::cout << --container[0] << ", ";
}
return 0;
}
此程序的输出是:
99, 98, 97,
现在,我想结局会是与此类似:
99, 98 , 96 , 95, 94, 93, 92, 91, 90
我想结局会是这样,因为 continue语句会根据定义,跳过97并重新开始迭代,从而输出上述结果中的一系列数字。
本书中的示例有效,但是执行 for循环。我很好奇,为什么它不能与同时循环,因为它们都是迭代。我只是需要一些解释,为什么这是。感谢大家提前。
顺便说一句,你应该使用'a!= b'而不是'!(a == b)' –
@BryanChen它们是等价的。 –
@ZacHowland我知道,但它很混乱。如果你忘记了括号,你将很难找到bug –