如何使用户结束此程序? //************************************************************ //电梯.java // //电梯模拟 //问题:需要找到一种方法使程序在用户输入后继续运行 //他们想要的第一层楼。 // ************************************************************ 导入java.util.*; 公共级电梯仿真{ 公共静态void main(字符串[]args){ 个人用户=新的个人(); 地板=新地板(); floors.move电梯(User.getDesiredFloor()); } } 类电梯{//需要SETTER和GETTER方法 私有整数质量=0; 私人综合能力=0; 私有字符串名称=”; 私有字符串颜色=”; } 班级{ ArrayList floorLevel=新的ArrayList(); 电梯电梯=新电梯(); 人=新人(); 楼层(){//0-9层 地板层。添加(提升);//0 floorLevel.add(null);//1 floorLevel.add(null);//2 floorLevel.add(null);//3 floorLevel.add(null);//4 floorLevel.add(null);//5 floorLevel.add(null);//6 floorLevel.add(null);//7 floorLevel.add(null);//8 floorLevel.add(null);//9 } System.out.println(“电梯在楼层:“+floorLevel.indexOf(电梯)); 公共电梯(内选楼层){ 如果(选择楼层>9){ System.out.println(“哇哦,伙计!你只能选择0-9!”); 返回; } if(chosenFloor==楼层索引(电梯)){ System.out.println(“兄弟,你已经在那一层了…”); } while(电梯的楼层索引>选择楼层){ 集合交换(floorLevel,floorLevel.indexOf(Lift),(floorLevel.indexOf(Lift)-1)); 系统输出打印LN(楼层索引(电梯)); } while(floorLevel.indexOf(Lift)

如何使用户结束此程序? //************************************************************ //电梯.java // //电梯模拟 //问题:需要找到一种方法使程序在用户输入后继续运行 //他们想要的第一层楼。 // ************************************************************ 导入java.util.*; 公共级电梯仿真{ 公共静态void main(字符串[]args){ 个人用户=新的个人(); 地板=新地板(); floors.move电梯(User.getDesiredFloor()); } } 类电梯{//需要SETTER和GETTER方法 私有整数质量=0; 私人综合能力=0; 私有字符串名称=”; 私有字符串颜色=”; } 班级{ ArrayList floorLevel=新的ArrayList(); 电梯电梯=新电梯(); 人=新人(); 楼层(){//0-9层 地板层。添加(提升);//0 floorLevel.add(null);//1 floorLevel.add(null);//2 floorLevel.add(null);//3 floorLevel.add(null);//4 floorLevel.add(null);//5 floorLevel.add(null);//6 floorLevel.add(null);//7 floorLevel.add(null);//8 floorLevel.add(null);//9 } System.out.println(“电梯在楼层:“+floorLevel.indexOf(电梯)); 公共电梯(内选楼层){ 如果(选择楼层>9){ System.out.println(“哇哦,伙计!你只能选择0-9!”); 返回; } if(chosenFloor==楼层索引(电梯)){ System.out.println(“兄弟,你已经在那一层了…”); } while(电梯的楼层索引>选择楼层){ 集合交换(floorLevel,floorLevel.indexOf(Lift),(floorLevel.indexOf(Lift)-1)); 系统输出打印LN(楼层索引(电梯)); } while(floorLevel.indexOf(Lift),java,loops,simulator,Java,Loops,Simulator,您可以将while环绕线放置 // ************************************************************ // ELEVATOR.java // // ELEVAOTR SIMULATION // PROBLEM: NEED TO FIND A WAY TO AMKE IT SO THAT THE PROGRAM KEEPS RNNING AFTER USER INPUTS // THIER FIRST DESIRED FLOOR. // *

您可以将
while
环绕线放置

// ************************************************************
// ELEVATOR.java
//
// ELEVAOTR SIMULATION
// PROBLEM: NEED TO FIND A WAY TO AMKE IT SO THAT THE PROGRAM KEEPS RNNING AFTER USER INPUTS 
// THIER FIRST DESIRED FLOOR.
// ************************************************************
import java.util.*;


public class Elevator_Simulation {

    public static void main (String[] args) { 
        Person User = new Person();
        Floor floors = new Floor();
        floors.moveElevator(User.getDesiredFloor()); 

    }
}

class Elevator { //NEEDS SETTER & GETTER METHODS 
    private int mass=0;
    private int capcity=0; 
    private String name="";
    private String color="";
}

class Floor { 


    ArrayList<Object> floorLevel = new ArrayList<Object>();

    Elevator Lift = new Elevator();
    Person Man = new Person();

    Floor() { //Floors 0-9
        floorLevel.add(Lift); //0
        floorLevel.add(null); //1
        floorLevel.add(null); //2
        floorLevel.add(null); //3
        floorLevel.add(null); //4
        floorLevel.add(null); //5
        floorLevel.add(null); //6
        floorLevel.add(null); //7
        floorLevel.add(null); //8
        floorLevel.add(null); //9
        }
        System.out.println("Elevator is at Floor: " + floorLevel.indexOf(Lift)  );


    public void moveElevator (int chosenFloor) {

        if (chosenFloor > 9) {
            System.out.println("Woooooah Buddy! You can only choose 0-9!");
            return;
        }
        if (chosenFloor == floorLevel.indexOf(Lift)) {
            System.out.println("Bro you're already on that floor...");
        }

            while (floorLevel.indexOf(Lift)>chosenFloor) {
                Collections.swap(floorLevel, floorLevel.indexOf(Lift), ( floorLevel.indexOf(Lift)-1 ) );
                System.out.println(floorLevel.indexOf(Lift) );
            }
            while (floorLevel.indexOf(Lift)<chosenFloor) {
                Collections.swap(floorLevel, floorLevel.indexOf(Lift), ( floorLevel.indexOf(Lift)+1 ) );
                System.out.println(floorLevel.indexOf(Lift) );
            }   

    }
}

class Person { 
    Scanner scan = new Scanner(System.in);
    public int getDesiredFloor() {
        int desiredFloor = scan.nextInt();
        return desiredFloor;
    }
}

只需为表示退出的值添加一个输入检查。

您可以在循环行时放置

// ************************************************************
// ELEVATOR.java
//
// ELEVAOTR SIMULATION
// PROBLEM: NEED TO FIND A WAY TO AMKE IT SO THAT THE PROGRAM KEEPS RNNING AFTER USER INPUTS 
// THIER FIRST DESIRED FLOOR.
// ************************************************************
import java.util.*;


public class Elevator_Simulation {

    public static void main (String[] args) { 
        Person User = new Person();
        Floor floors = new Floor();
        floors.moveElevator(User.getDesiredFloor()); 

    }
}

class Elevator { //NEEDS SETTER & GETTER METHODS 
    private int mass=0;
    private int capcity=0; 
    private String name="";
    private String color="";
}

class Floor { 


    ArrayList<Object> floorLevel = new ArrayList<Object>();

    Elevator Lift = new Elevator();
    Person Man = new Person();

    Floor() { //Floors 0-9
        floorLevel.add(Lift); //0
        floorLevel.add(null); //1
        floorLevel.add(null); //2
        floorLevel.add(null); //3
        floorLevel.add(null); //4
        floorLevel.add(null); //5
        floorLevel.add(null); //6
        floorLevel.add(null); //7
        floorLevel.add(null); //8
        floorLevel.add(null); //9
        }
        System.out.println("Elevator is at Floor: " + floorLevel.indexOf(Lift)  );


    public void moveElevator (int chosenFloor) {

        if (chosenFloor > 9) {
            System.out.println("Woooooah Buddy! You can only choose 0-9!");
            return;
        }
        if (chosenFloor == floorLevel.indexOf(Lift)) {
            System.out.println("Bro you're already on that floor...");
        }

            while (floorLevel.indexOf(Lift)>chosenFloor) {
                Collections.swap(floorLevel, floorLevel.indexOf(Lift), ( floorLevel.indexOf(Lift)-1 ) );
                System.out.println(floorLevel.indexOf(Lift) );
            }
            while (floorLevel.indexOf(Lift)<chosenFloor) {
                Collections.swap(floorLevel, floorLevel.indexOf(Lift), ( floorLevel.indexOf(Lift)+1 ) );
                System.out.println(floorLevel.indexOf(Lift) );
            }   

    }
}

class Person { 
    Scanner scan = new Scanner(System.in);
    public int getDesiredFloor() {
        int desiredFloor = scan.nextInt();
        return desiredFloor;
    }
}

仅为表示退出的值添加输入检查。

BTW考虑更改<代码>(CHONENOLL>9)< /C> >代码>(CHOSENLASE>9×CHOSENLASH<0)< /代码> BTW考虑更改<代码>(CHOSENLASE>9)< /代码>至<代码>(CHOSENLASE>9×CHOSENLASE<0)
谢谢!这是有道理的,尽管我必须在命令行中输入两次才能让它运行,我想知道为什么?@JevonøNo,可能是因为您发布的代码与您正在运行的代码不同。如果您添加
while(true)
在我提到的那一行之前,它工作得很好。谢谢!这是有道理的,尽管我必须在命令行中输入两次才能让它运行,我想为什么?@JevonøNo,可能是因为你发布的代码与你正在运行的代码不一样。如果你在我提到的那一行之前添加
while(true)
,它工作得很好。