Getter方法无法在增强循环中工作

时间:2015-10-27 11:21:09

标签: java if-statement for-loop getter

我正在创建一个增强的for循环来对我的零件数组列表中的零件对象进行排序。但是当增强的for循环进入if语句时它没有做任何事情(Damper除外)并且没有错误,所以我不知道为什么它不起作用。 thelist是包含对象的数组列表的名称。

    for(int z=0; z<20; z++){
        displayMenu();
            int selection = sc.nextInt();
            if(selection == 0){
                System.out.println("You have exited the system");
            } else if(selection == 1){  
                System.out.println("Choose stock name to replenish");
                for(Part y: thelist){
                    String nS = sc.nextLine();
                    System.out.print(nS);
                    if(nS.equals(y.getName())){
                        System.out.println("Please enter replenish quantity");
                        int qty = sc.nextInt();
                        y.replenish(qty);
                        System.out.println("Complete");
                    }
                }
            } else if

我的对象

    Part part0 = new Part("p100", "Spring", 43, 120);
    Part part1 = new Part("p101", "Damper", 72, 150);
    Part part2 = new Part("p102", "Lower CA", 38, 80);
    Part part3 = new Part("p103", "Upper CA", 26, 70);

只是为了证明这一点 'String nS'正在运作

此外,它仅适用于阻尼器

2 个答案:

答案 0 :(得分:1)

首先,您需要添加

sc.nextLine();

之后

int qty = sc.nextInt();

后添加相同的内容
int selection = sc.nextInt();

使用换行符。

其次,如果您正在尝试搜索nS,为什么要将它放在for循环中?将它放在for循环之外,然后搜索。

    String nS = sc.nextLine();
    System.out.print(nS);

    for (Part y : thelist) {
        if (nS.equals(y.getName())) {
            System.out.println("Please enter replenish quantity");
            int qty = sc.nextInt();
            sc.nextLine();
            y.replenish(qty);
            System.out.println("Complete");
        }
    }

答案 1 :(得分:0)

你的问题是你正在使用nextInt然后使用nextLine和nextInt。新的线条让你感到困惑。

for(int z=0; z<20; z++){
    displayMenu();
        int selection = Integer.parseInt(sc.nextLine());
        if(selection == 0){
            System.out.println("You have exited the system");
        } else if(selection == 1){  
            System.out.println("Choose stock name to replenish");
            for(Part y: thelist){
                String nS = sc.nextLine();
                System.out.print(nS);
                if(nS.equals(y.getName())){
                    System.out.println("Please enter replenish quantity");
                    int qty = Integer.parseInt(sc.nextLine());
                    y.replenish(qty);
                    System.out.println("Complete");
                }
            }
        } else if