Я начал создавать очень простую версию калькулятора в C++. Идея состоит в том, чтобы выполнять базовые операции только с двумя числами, а затем циклически возвращаться, чтобы пользователь мог выполнить новый расчет.Возникли проблемы с циклом while в C++
Программа выглядит следующим образом:
#include<iostream>
#include<string>
#include"mathOperations.h"
using namespace std;
int main()
{
int x, y;
string operation;
string repeat = "y";
while (repeat == "y" or "Y")
{
cout << "Welcome! This is a raw version of a calculator - only use two numbers." << endl;
cin >> x >> operation >> y;
if (operation == "+")
{
cout << "Result: " << add(x, y) << endl;
}
else if (operation == "-")
{
cout << "Result: " << subtract(x, y) << endl;
}
else if (operation == "*")
{
cout << "Result: " << multiply(x, y) << endl;
}
else if (operation == "/")
{
cout << "Result: " << divide(x, y) << endl;
}
else
{
cout << "This is not a valid sign. Please choose another one!" << endl;
}
cout << "Wanna go again? Type 'y' or 'n'." << endl;
cin >> repeat;
if (repeat == "n" or "N")
{
cout << "Alright, have a nice day!" << endl;
break;
}
}
}
int add(int x, int y)
{
return x + y;
}
int subtract(int x, int y)
{
return x - y;
}
int multiply(int x, int y)
{
return x * y;
}
int divide(int x, int y)
{
return x/y;
}
ПРИМЕЧАНИЕ: Существует файл «mathOperations.h», в котором я сделал вперед заявления всех функций, используемых.
Проблема заключается в том, что всякий раз, когда я набираю «y», чтобы сделать его циклом, он просто выводит следующее выражение «if» и вырывается из цикла, и программа заканчивается. Я не мог понять, почему это происходит, поскольку оператор «if» должен запускаться только в том случае, если я набираю «n».
'или' не дает выбор возможных значений, это комбинация булевых выражений – stefaanv
if (repeat == "n" или repeat == "N"). То же самое с y –
@JesperJuhl Как вы знаете, что OP не * работает * из книги? Если такие вопросы не являются причиной этого сайта, что такое? Комментарии, подобные этому, убирают людей, которым нужен этот сайт. Прокомментируйте/ответьте, когда у вас есть что-то конструктивное, чтобы сказать. –