我正在创建一个增强的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'正在运作
此外,它仅适用于阻尼器
答案 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