【发布时间】:2014-01-27 08:55:59
【问题描述】:
我已经在c中做了一个示例代码。
do
{
switch(i)
{
case 1:
{
cout<< "1\n";
break;
}
case 2:
{
cout<< "1\n";
break;
}
case 3:
{
continue;
}
}
}while (0);
在此代码中,如果 i 的值为 3,那么我想重新启动 do while 循环,这将导致无限循环。但不幸的是循环没有被再次执行。那会是什么原因呢。? 我在Visual Studio中检查了相同代码的汇编代码,发现在switch -case里面的continue语句的汇编中没有JMP语句。
【问题讨论】:
-
continue跳过循环体的其余部分并重新测试条件。你的是硬编码的false(在将0转换为bool之后)。考虑到其他情况break无论如何 - 离开循环,您可以使用while (true)代替(假设您的真实代码大不相同)。 -
这个问题似乎离题了,因为它要么是关于错字,要么是 OP 缺少对该语言非常基本的部分的了解。
标签: c++ c loops while-loop continue