2016-12-04 7 views
7

whileループの例としてC++ Primerからこのコードをコピーしましたが、何も出力しません。私は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; 
} 

答えて

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

行の最後にバックスラッシュを取り除きます。それは行継続文字です。次の行がこの行に連結されます。換言すれば、++valは、 "sum + val to sum"コメントの一部になります。

+1

これは[MCVE]が重要な理由の完全な例です。 – MooseBoys

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

sum += val;行にタイプミスがあります。最後の "\"は、次の行をコメントにします。したがって、valは決して増加しなかったので、whileは無限ループになります。 "\"を削除すると、うまくいきます。

1

これは簡単な間違いですが、コメントの後ろにある "// sum + valをsumに代入する"を削除します。

関連する問題