java - 如何让用户结束这个程序?

标签 java loops simulator

// ************************************************************
// 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;
    }
}

上面是一个电梯模拟器代码(在我尝试用 GUI 制作一个之前),除了明显的初学者缺陷之外,我唯一的问题是我很难找到一种方法来制作它,以便程序不会在用户输入一层后就结束。我至少希望程序运行直到用户用命令结束它。我正在考虑在某个地方使用 while 循环,但是在哪里?请帮助并指出我在此代码中需要改进的任何内容。

最佳答案

您可以在该行周围放置 while 循环

floors.moveElevator(User.getDesiredFloor());

只需为代表退出的值添加输入检查即可。

关于java - 如何让用户结束这个程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39542065/

相关文章:

java - 将文件插入 postgres

java - 使用 Guava 19.0,有没有办法将文件扩展名映射到 MediaType?

javascript - 使用 jQuery 在 js 中的日历上创建事件,我遇到了一个奇怪的错误

android - 是否可以在Linux服务器上运行Android应用程序自动化测试

iphone - 您最喜欢的 iPhone 模拟器视频/屏幕捕获工具是什么?

java - Hadoop - 如何发射 TwoDArrayWritable

c++ - while 循环时的问题

Python - 迭代字典键时的性能

BlackBerry 模拟器的使用

java ; TextField 不会位于 JLabel 下