-3
Когда я пытаюсь выполнить цикл dowhile в Java со строкой, он просто завершает программу без ошибки, не давая мне возможность войти, если я хочу продолжить. Как мне сделать цикл программы, если требуется, с помощью строки?DoWhile в Java
public static void main(String args[]) {
Scanner user_input = new Scanner (System.in);
Maths math = new Maths();
double firstNum, secondNum;
String calcAgain = null;
do{
System.out.println("Enter First Number: ");
firstNum = user_input.nextDouble();
System.out.println("Enter Second Number: ");
secondNum = user_input.nextDouble();
System.out.println("Please select an operation! (+,-,*,/)");
String operation = user_input.next();
if (operation.equals("+")) {
System.out.println(math.add(firstNum, secondNum));
}
else if (operation.equals("-")) {
System.out.println(math.subtract(firstNum, secondNum));
}
else if (operation.equals("*")) {
System.out.println(math.multiply(firstNum, secondNum));
}
else if (operation.equals("/")) {
System.out.println(math.divide(firstNum, secondNum));
}
else {
System.out.println("Invalid Function!");
}
System.out.println("Would you like to do another calculation? ");
calcAgain = user_input.nextLine();
}while(calcAgain == "yes");
Сделайте 'calcAgain.equals (« да »)'. Проверьте [Как сравнить строки в Java] (http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) –
Вы, кажется, правильно используете 'equals' в остальном вашей программы, почему бы не во время условия? – August
См. [Как сравнить строки в Java?] (Http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) и [Пропуск nextLine() после использования nextInt ()] (http://stackoverflow.com/questions/13102045/skipping-nextline-after-use-nextint). – rgettman