Getter 方法在增强循环中不起作用
Getter method not working in enhanced loop
我正在制作一个增强的 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' 正在工作
此外,它仅适用于阻尼器
首先,您需要添加
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");
}
}
您的问题是您使用的是 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
我正在制作一个增强的 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' 正在工作
此外,它仅适用于阻尼器
首先,您需要添加
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");
}
}
您的问题是您使用的是 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