Я изучаю Objective-C и пытаюсь сделать очень простой калькулятор командной строки.«S» должен установить калькулятор на определенное значение, а «E» - завершить работу калькулятора.
Мое решение для этого было создать цикл while и позволить ему работать, пока оператор не равен 'E'или' е '. Проблема : если оператор равен «E» или «e», цикл while все еще выполняется (поскольку он возвращает сообщение «Пожалуйста, используйте действительный оператор»).
(Я также попробовал это с помощью оператора do-while, но это тоже не сработало)
while (operator != 'E' && operator != 'e')
{
NSLog (@"Type in a number and an operator.");
scanf ("%lf %c", &number, &operator);
if (operator == 'S' || operator == 's')
{
[deskCalc setResult: number];
}
else if ( operator == '+' )
{
[deskCalc add: number];
}
else if ( operator == '-' )
{
[deskCalc subtract: number];
}
else
{
NSLog(@"Please use a valid operator ( + or - )");
}
}
if (operator == 'E' || operator == 'e')
{
[deskCalc showResult];
}
Почему операторы while выполняются, если я использую 'E' как оператор?