为什么这个while循环不结束?

7

我从C++ Primer复制了这段代码作为while循环的示例,但它没有输出任何内容。我正在使用g++。

#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;
}
3个回答

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

去掉行末的反斜杠。那是一种行继续字符,它使得下一行连在当前行的后面;也就是说,++val 会成为“将sum + val分配给sum”注释的一部分。


1
这是[MCVE]的重要性的完美范例。 - MooseBoys

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

你在sum += val;这一行打错了字。结尾的“\”使得下一行成为注释,导致while成为一个无限循环,因为val从未增加。去掉“\”,它就能正常工作。


1
这是一个简单的错误,请删除注释“// assigns sum+ val to sum”后面的反斜杠。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接