有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    所有的if都是嵌套的,因此如果第一个失败,则跳过所有其余的。尝试关闭每个if正文后的大括号,如下所示:

    if( condition1 ){
        body
    }
    if( condition2 ){
        body2
    }
    ...