这段代码有什么问题?为什么循环条件反复执行而循环体从不这样做?这让我疯了!我看不出问题:
bool test() { std::cout << "condition!" << std::endl; return true; }
while(test());
{
std::cout << "This message never appears!!!" << std::endl;
}
输出:
condition!
condition!
condition!
...forever
答案 0 :(得分:3)
当然我是盲目的,原因是“while”之后的错误分号!编译器认为没有循环体,只是重复执行“无”。我读到的循环体,编译器只是认为是一个未命名的/匿名的范围,在循环之后,所以它永远不会被执行。