Добрый день, пытаюсь написать консольный калькулятор и не пойму почему не работает цикл. Вот код калькулятора, все работает. Но как только пытаюсь добавить цикл do-while он работает не так, как я думаю он должен работать.Ведь пока условие истинно, в моем варианте "!yes" не да, то цикл должен выполнится заново, а пока, происходит выход из программы, какую команду ты бы не задала. Даже абракадабра. Вот результат из консоли. Скажите, где я туплю?
Введите первое число:
1
Введите второе число:
2
Сделайте действие: + - * /
+
Результат: 3.0Выйти из программы: no/yes
no
Process finished with exit code 0
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Calculator calc = new Calculator();
String exit ="no";
do {
System.out.println("Введите первое число:");
double firstnumber = scanner.nextDouble();
System.out.println("Введите второе число:");
double secondnumber = scanner.nextDouble();
System.out.println("Сделайте действие: + - * /");
String actionuser = scanner.next();
calc.mathoperator(actionuser, firstnumber, secondnumber);
System.out.println("Результат: " + calc.getResult()+"Выйти из программы: no/yes");
exit=scanner.next();
}while(exit.equals("!yes"));
}// end method main
}// end class
И класс калькулятор,правда пока с одним действием.
public class Calculator {
private double result;
public void plus(double firstnumber, double secondnumber) {
result = firstnumber + secondnumber;
}// end method add
public void mathoperator (String useraction,double firstnumber, double secondnumber ) {
if (useraction.equals("+")) {
plus(firstnumber, secondnumber);
}
}// end matoperator
public double getResult(){
return result;
}// end method getResult
}// end class
пока while дает true цикл продолжается.
В вашем случае:
while(exit.equals("!yes"));
вы вводите no. "no".equals("!yes")
вернет false
т.к. no не равен true.
Думаю вы хотели использовать отрицание, тогда восклицательный знак надо ставить перед утверждением.
!exit.equals("yes")
это утверждение вернет true
если введете "no"
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как сделать, чтобы после того, как поставили крестик, то через некоторое время, вставился нолик, а не сразу?
Создаю окно с некоторой надписью и реакцией на нажатие клавиш(отображение нажатых символов на окне)Помогите пожулуйста создать кнопку на этом...
Осваивая AndroidStudio, столкнулся с такой проблемойСледующий код должен рисовать на экране бутылку, и далее с помощью многократного вызова fly() , например...