Добрый день, пытаюсь написать консольный калькулятор и не пойму почему не работает цикл. Вот код калькулятора, все работает. Но как только пытаюсь добавить цикл 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"
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Как сделать, чтобы после того, как поставили крестик, то через некоторое время, вставился нолик, а не сразу?
Создаю окно с некоторой надписью и реакцией на нажатие клавиш(отображение нажатых символов на окне)Помогите пожулуйста создать кнопку на этом...
Осваивая AndroidStudio, столкнулся с такой проблемойСледующий код должен рисовать на экране бутылку, и далее с помощью многократного вызова fly() , например...