Логическое вычисление C++

Поэтому мне любопытно, почему это происходит.

int main()
{
   bool answer = true;
   while(answer)
   {
      cout << "\nInput?\n";
      cin >> answer;
   }
return 0;
}

Ожидаемое поведение: 0 - Выход из программы, 1 - снова подсказывает, Любое ненулевое целое число, отличное от 1 — снова запрашивает

Фактическое поведение: 0 - Как и ожидалось, 1 - Как и ожидалось, Любое ненулевое целое число, отличное от 1 — бесконечный цикл

Из http://www.learncpp.com/cpp-tutorial/26-boolean-values/

One additional note: when converting integers to booleans, 
the integer zero resolves to boolean false, 
whereas non-zero integers all resolve to true.

Почему программа переходит в бесконечный цикл ?

23
задан HostileFork 31 May 2012 в 01:59
поделиться