2016-03-05 56 views
-1

这段代码有什么问题?为什么循环条件不会循环执行?这让我疯狂!我看不到的问题:C++:循环条件连续执行时,循环体永不执行

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

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

输出:

condition! 
condition! 
condition! 
...forever 

回答

3

当然我是盲人,原因是错误的分号“而”后!编译器认为没有循环体,只是反复执行“nothing”。我读为循环体时,编译器认为它是一个未命名的/匿名的作用域,在循环之后,所以它永远不会被执行。