程序没有按预期执行?

时间:2017-04-15 13:05:33

标签: java arrays loops arraylist while-loop

这是我的代码 “完整代码”

import java.util.Scanner;
import java.util.ArrayList;

public class RestTestGhada {

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);


    RestGhada obj2 = new RestGhada("null",0,0,"null");
    RestGhada obj3 = new RestGhada();
    RestGhada obj4 = new RestGhada();
    DateGhada obj5 = new DateGhada(19,8,1998);
    DateGhada obj6 = new DateGhada(19,8,2011);
    WorkerGhada obj7 = new WorkerGhada("Ghada","Alghamdi",obj5,obj6,"Female");
    RestGhada obj8 = new RestGhada(12,"null",20,obj7);





    obj2.setID(123456789);

    System.out.print("Enter the number of employee: ");
    int noemp=input.nextInt();

    String empname[] = new String[5];
    System.out.print("Enter the employee names: ");
    for(int i=0;i<empname.length;i++)
        empname[i]=input.nextLine();
    obj2.setEmployeeName(empname);

    System.out.print("**Menu** \n"
            + "1.Create three objects of restaurant.\n"
            + "2.Display all restaurants information.\n"
            + "3.Display the checkRestaurant result. \n"
            + "4.Exit.\n"
            + "Your choice is: ");
    int choice =input.nextInt();
    while(choice!=4){

        switch(choice){
            case 1: obj3.setName("null");obj3.setID(choice);obj4.setNoEmployee(noemp); break;
            case 2: obj2.lastprint(); break;
            case 3: obj2.CheckRestaurant(noemp); break;
                }
        System.out.print("\n Your choice: ");
        choice=input.nextInt();
    } 

 CorporateGhada[] ArrGroups=new CorporateGhada[4];

               RestGhada obj1 = new RestGhada("KFC");

               ArrayList<RestGhada>ALRestaurant=new ArrayList();

               System.out.println("do you want to enter information?");   
               String c = input.nextLine();


               while (true){
               if(c.equals("no")||c.equals("No"))
               break;
               System.out.print("Menu\n"
                       + "1.enter ID,name,number of employee,owner\n"
                       + "2.enter ID,adress,name,owner,number of employee\n"
                       + "your choice :  ");
               int choice1 =input.nextInt();
               if(choice1 == 1){
               System.out.println("Enter ID") ;   
               int ID=input.nextInt();
               System.out.println("Enter name ") ;   
                String name=input.next();
              System.out.println("nbemployee:") ;   
               int nbemployee =input.nextInt(); 
               System.out.println("Enter owner:") ;   
               String owner=input.next();
               ALRestaurant.add(new RestGhada(name,ID,nbemployee,owner));
               }
               else if (choice1 == 2){
               System.out.println("Enter ID:");
               int ID=input.nextInt();
               System.out.println("Enter adrees:") ;   
               String adrees=input.next();
               System.out.println("Enter name :"); 
                String name=input.next();
               System.out.println("Enter owner:") ;   
               String owner=input.next();
               System.out.println("Enter nbemployee:");
               int nbemployee=input.nextInt();
                 ALRestaurant.add(new RestGhada(ID,adrees,name,owner,nbemployee)); 
               }
               else
                    ALRestaurant.add(new RestGhada());

               }


               ALRestaurant.remove(1);
               for(int i=0; i<ALRestaurant.size();i++ ){
               System.out.print(ALRestaurant.get(i));}
               System.out.print(ALRestaurant.contains(obj1));






}

}

当我尝试运行第一次quistion没有得到答案,它直接进入while循环..我已经从用户之前获取信息,它工作但现在它现在.. 当我运行它时,结果如下:

do you want to enter information?

Menu

1.enter ID,name,number of employee,owner

2.enter ID,adress,name,owner,number of employee

your choice :  

3 个答案:

答案 0 :(得分:0)

在提出第一个问题之前,您是否在input中输入了任何内容? 当我刚刚运行它(试图将你的代码变成一个工作示例)时,它等待我输入:

public static void main(String[] args) {
    ArrayList<RestGhada> ALRestaurant = new ArrayList();

    Scanner input = new Scanner(System.in);
    System.out.println("do you want to enter information?");
    String c = input.nextLine();


    while (true) {
        if (c.equals("no") || c.equals("No"))
            break;
        System.out.print("Menu\n"
                + "1.enter ID,name,number of employee,owner\n"
                + "2.enter ID,adress,name,owner,number of employee\n"
                + "your choice :  ");
        int choice1 = input.nextInt();
        if (choice1 == 1) {
            System.out.println("Enter ID");
            int ID = input.nextInt();
            System.out.println("Enter name ");
            String name = input.next();
            System.out.println("nbemployee:");
            int nbemployee = input.nextInt();
            System.out.println("Enter owner:");
            String owner = input.next();
            ALRestaurant.add(new RestGhada(name, ID, nbemployee, owner));
        } else if (choice1 == 2) {
            System.out.println("Enter ID:");
            int ID = input.nextInt();
            System.out.println("Enter adrees:");
            String adrees = input.next();
            System.out.println("Enter name :");
            String name = input.next();
            System.out.println("Enter owner:");
            String owner = input.next();
            System.out.println("Enter nbemployee:");
            int nbemployee = input.nextInt();
            ALRestaurant.add(new RestGhada(ID, adrees, name, owner, nbemployee));
        } else
            ALRestaurant.add(new RestGhada());

    }
}

private static class RestGhada {
    public RestGhada(int id, String adrees, String name, String owner, int nbemployee) {

    }

    public RestGhada() {

    }

    public RestGhada(String name, int id, int nbemployee, String owner) {
    }
}

答案 1 :(得分:0)

在您的代码中,您没有包含输入对象的初始化。 如果添加行

 Scanner input = new Scanner(System.in);

在你的程序开始时它应该工作。 我运行你的程序添加了该行,它工作。

除此之外,你应该真正查看正确的缩进。

答案 2 :(得分:0)

更改此代码。

   System.out.println("do you want to enter information (yse/no) ? :");
    String c = input.nextLine();

         while (true) {
                    if (c.equals("no") || c.equals("No")){
                          break;
                    }
                    else{
                         System.out.println("Enter Your Choice(1 or 2) :");
                        int choice1 = input.nextInt();
                        if (choice1 == 1) {
                            System.out.println("Enter ID");
                            int ID = input.nextInt();
                            System.out.println("Enter name ");
                            String name = input.next();
                            System.out.println("nbemployee:");
                            int nbemployee = input.nextInt();
                            System.out.println("Enter owner:");
                            String owner = input.next();
                            ALRestaurant.add(new RestGhada(name, ID, nbemployee, owner));
                        } else if (choice1 == 2) {
                            System.out.println("Enter ID:");
                            int ID = input.nextInt();
                            System.out.println("Enter adrees:");
                            String adrees = input.next();
                            System.out.println("Enter name :");
                            String name = input.next();
                            System.out.println("Enter owner:");
                            String owner = input.next();
                            System.out.println("Enter nbemployee:");
                            int nbemployee = input.nextInt();
                            ALRestaurant.add(new RestGhada(ID, adrees, name, owner, nbemployee));
                        } else{
                             ALRestaurant.add(new RestGhada());
                        }
                    }
    }