While循环中的java If语句
我目前正在尝试制作一个程序,可以打开、关闭、打开和关闭“洗碗机”。当我运行此程序一次时,我会得到以下预期结果:
Welcome to SiriWash
What would you like to do?
Open Door | Close Door | Turn on | Turn Off
open door
opening door
The Dishwasher is Open and Off
What would you like to do?
Open Door | Close Door | Turn on | Turn Off
如果我再这样做,我会得到:
Welcome to SiriWash
What would you like to do?
Open Door | Close Door | Turn on | Turn Off
open door
opening door
The Dishwasher is Open and Off
What would you like to do?
Open Door | Close Door | Turn on | Turn Off
close door
What would you like to do?
Open Door | Close Door | Turn on | Turn Off
以下是跑步者代码:
import java.util.Scanner;
public class Runner {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
boolean gameRunning = true;
Dishwasher washer1 = new Dishwasher(false,false);
washer1.open();
washer1.turnOff();
//System.out.println(washer1);
System.out.println("Welcome to SiriWash");
String answer = "";
//String answer = "";
while (gameRunning) {
System.out.println("What would you like to do?");
System.out.println("Open Door | Close Door | Turn on | Turn Off ");
answer = reader.nextLine();
if (answer.equalsIgnoreCase("open door")) {
washer1.open();
System.out.println("opening door");
System.out.println(washer1);
answer = "";
if (answer.equalsIgnoreCase("close door")) {
washer1.close();
System.out.println("Closing door");
System.out.println(washer1);
answer = "";
if (answer.equalsIgnoreCase("turn on")) {
washer1.turnOn();
System.out.println("turning on");
System.out.println(washer1);
answer = "";
if (answer.equalsIgnoreCase("turn off")){
washer1.turnOff();
System.out.println("turning off");
System.out.println(washer1);
answer = "";
}
}
}
}
}
}
}
似乎在第二次输入期间跳过了if语句,我该如何解决这个问题
# 1 楼答案
所有的
if
都是嵌套的,因此如果第一个失败,则跳过所有其余的。尝试关闭每个if
正文后的大括号,如下所示: