2016-12-04 154 views
7

作为while循环的例子,我从C++ Primer拷贝了这段代码,它不输出任何内容。我正在使用g ++。为什么while循环不结束?

#include <iostream> 

int main() 
{ 
    int sum = 0, val = 1; 
    // keep executing the while as long val is less than or equal to 10 
    while (val <= 10) { 
     sum += val;  // assigns sum+ val to sum\ 
     ++val;   // add 1 to val 
    } 
    std::cout << "Sum of 1 to 10 inclusive is " 
       << sum << std::endl; 
    return 0; 
} 

回答

11
sum += val;  // assigns sum+ val to sum\ 

获得在该行的末尾摆脱反斜杠。这是一个续行字符。它使下一行连接到这一行;换句话说,++val成为“分配总和+总计”评论的一部分。

+1

这是[MCVE]为什么重要的完美例子。 – MooseBoys

4
sum += val;  // assigns sum+ val to sum\ <-- typo 
    ++val;   // add 1 to val 

你在这个sum += val;行有一个错字。最后的“\”将下面的行作为注释,从而使得while无限循环,因为val从未增加。删除“\”,那么它会工作。

1

这是一个简单的错误,在评论“//分配sum + val之后删除\”。