2016-12-04 148 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之後刪除\」。