Оператор if выполняется, как если бы условия были выполнены, даже если они не были выполнены. Я пробовал перемещать биты кода и даже переписывал оператор if по-другому, но он не изменил результат. Кто-нибудь знает, что я делаю неправильно?Если оператор выполняется, выполняются ли условия или нет
#include <iostream>
#include <string>
using namespace std;
double num, num2, num3, num4, num5, num6, sum;
char input;
bool continueBool = true;
string bob;
void math()
{
cout << "Please enter your first number" << endl;
cin >> num;
cout << "Please enter your second number?" << endl;
cin >> num2;
cout << "Please enter your third number?" << endl;
cin >> num3;
cout << "Please enter your fourth number" << endl;
cin >> num4;
cout << "Please enter your fith number?" << endl;
cin >> num5;
cout << "Please enter your sixth number?" << endl;
cin >> num6;
sum = num + num2 + num3 + num4 + num5 + num6;
}
void ifStatement() {
if (bob == "no", "No", "NO", "nO") {
continueBool = false;
cout << "Good bye!" << endl;
}
}
int main()
{
while (continueBool = true) {
math();
cout << "The sum of your numbers is: " << sum << endl;
cout << "Would you like to add any more numbers together?" << endl;
cin >> bob;
ifStatement();
return 0;
}
}
предупреждение: 'while (continueBool = true)' -> 'while (continueBool)' ..... Лучше, чем 'while (continueBool == false == false)'. Итог: проверка того, является ли логическое '== true', никогда не имеет смысла, просто проверьте логическое значение. –
Всегда 'return'ing изнутри цикла делает цикл: _not-a-loop_. Хотя, когда у вас бесконечная ошибка цикла, возможно, это не так. –
См. Также: http://stackoverflow.com/q/16475032/224704 –