C ++:循环条件连续执行时,循环体永远不会执行

时间:2016-03-05 18:31:07

标签: c++ while-loop infinite-loop

这段代码有什么问题?为什么循环条件反复执行而循环体从不这样做?这让我疯了!我看不出问题:

bool test() { std::cout << "condition!" << std::endl; return true; }

while(test());
{
   std::cout << "This message never appears!!!" << std::endl;
}

输出:

condition!
condition!
condition!
...forever

1 个答案:

答案 0 :(得分:3)

当然我是盲目的,原因是“while”之后的错误分号!编译器认为没有循环体,只是重复执行“无”。我读到的循环体,编译器只是认为是一个未命名的/匿名的范围,在循环之后,所以它永远不会被执行。