Chciałbym prosić o wyjaśnienie działania typu bool. Przypuszczam, że moje pytanie jest trochę naiwne, a logika "pokrętna". Mam taki oto kod:
#include <iostream>
using namespace std;
int main()
{
bool gotowe {false}; //gotowe {true}
int liczba {0};
while (!gotowe)
{
cout << "Podaj liczbę z przedziału 1-5: ";
cin >> liczba;
if (liczba <= 1 || liczba >= 5)
cout << "Poza zasięgiem. Spróbuj ponownie" << endl;
else
{
cout << "Dziękuję!" << endl;
gotowe = true; // gotowe = false
}
}
return 0;
}
Wszystko działa. Moje pytanie dotyczy tego, dlaczego po zmianie instrukcji "gotowe {false}" na "gotowe {true}" - w linijce 6 oraz "gotowe = true" na "gotowe = false" - w linijce 18 program nie zostanie wykonany. Według mnie logiczne byłoby, aby równoległa zmiana obu tych instrukcji dała ten sam wynik (zachowana byłaby logika). Czy to w jakiś sposób wynika ze specyfiki działania typu bool?
Z góry dziękuję za pomoc