2016-12-04 2 views
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; 
} 

ответ

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

Избавиться от обратной косой черты в конце строки. Это символ продолжения линии. Это приводит к тому, что следующая строка будет конкатенирована с этой строкой; другими словами, ++val становится частью комментария «присваивает сумму + val для суммы».

+1

Это прекрасный пример того, почему важны [MCVE]. – MooseBoys

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

У вас есть опечатка на этой линии sum += val;. «\» В конце делает следующую строку комментарием, делая while бесконечным циклом, поскольку val никогда не увеличивался. Удалите "\", тогда это сработает.

1

Это простая ошибка, удалите \ после комментария "// присваивает сумму + val сумме".

Смежные вопросы