我无法理解为什么在此代码段中“Hello”语句不是 正在印刷。我认为for循环中的条件语句只在第二次迭代后才开始测试。
for ( count = 0; count < 0; ++count)
{
cout<<"Hello!\n";
}
答案 0 :(得分:7)
它永远不会进入循环,因为for
循环在开始时进行了测试。
您从count = 0
开始,但循环条件为count < 0
。所以它立即失败并跳过整个循环。
do-while
循环是在迭代结束时测试的循环。
答案 1 :(得分:4)
for
循环:
for (count = 0; count < 0; ++count)
{
cout<<"Hello!\n";
}
定义为等同于:
{
count = 0;
while (count < 0)
{
{
cout<<"Hello!\n";
}
++count;
}
}
警告continue
将转到++count
,而不是count < 0
。
答案 2 :(得分:2)
我认为for循环中的条件语句开始得到 仅在第二次迭代后测试
不,不。它已在第一次迭代之前检查过。
答案 3 :(得分:2)
首先测试病情。
for
循环
for (<initializer>; <condition>; <increment>) { <body> }
相当于:
{
<initializer>
bool __first = true;
while ((__first ? __first = false : (<increment>, true)), <condition>) {
<body>
}
}
总是迭代一次的唯一循环结构是:
do {
<body>
} while (<condition>);