简体   繁体   English

如何使用户结束此程序?

[英]How to Make it so that the User ends this program?

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

Above is an Elevator Simulator Code (before I attempt to make one with a GUI) and my only problem, aside from the obvious beginner flaws, is that I'm having trouble of finding a way to make it so that the program doesn't just end once the user inputs one floor. 上面是一个电梯模拟器代码(在我尝试使用GUI之前),除了明显的初学者缺陷之外,我唯一的问题是我无法找到一种方法来制作它以便程序不会一旦用户输入一层,就结束。 I at least want the program to run until the user ends it with a command. 我至少希望程序运行,直到用户用命令结束它。 I'm thinking of using a while loop somewhere but where? 我想在某处使用while循环,但在哪里? Please help and point out anything I should improve in this code. 请帮助并指出我应该在此代码中改进的任何内容。

You can put the while loop around the line 你可以把while循环放在一行

floors.moveElevator(User.getDesiredFloor());

Just add an input check for a value that represents exiting. 只需为表示退出的值添加输入检查。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM