我正在尝试创建一个循环,用户在其中输入披萨配料的一些值。他们可以吃意大利辣香肠、菠萝等。当他们输入“完成”时,我希望它跳出循环。我这一切都在工作。这只是我的 for 循环,这就是问题所在。我有 4 个披萨配料,所以很自然地我把它循环了 4 次。但如果用户输入了错误的值,就会用完我的 4 个循环之一。现在我可以将计数器设置为 200,这样他们就不太可能多次出错。但我希望有一个更干净的版本。因此它会一直提示用户,直到输入“done”。我尝试使用 while 循环,并在其中嵌套 do-while 。类似的东西
while( size != "done")
但这也不起作用。这是我的代码:
public List<String> Input(){
List<String> toppings = new ArrayList<String>();
Scanner sc = new Scanner(System.in);
String size;
System.out.println("What pizza toppings; Pepperoni, Fungi, Pineapple or Bacon, type 'done' when your finished: ");
FORLOOP: for(int i = 0; i < 4 ; i++){
do {
size = sc.next();
if ( size.equalsIgnoreCase( "Pepperoni") || size.equalsIgnoreCase( "Fungi" ) || size.equalsIgnoreCase( "pineapple" ) || size.equalsIgnoreCase( "bacon" )) {
toppings.add(size);
} else if( size.equalsIgnoreCase( "done" ) ){
break FORLOOP;
}
else{
System.out.print("Choose either 'Pepperoni', 'Fungi', 'bacon' or 'pineapple' Toppings, type 'done' when finshed: ");
}
} while ( false );
}
return toppings;
}
最佳答案
int cnt = 0;
while(cnt < 4){
size = sc.next();
if ( size.equalsIgnoreCase( "Pepperoni") || size.equalsIgnoreCase( "Fungi" ) || size.equalsIgnoreCase( "pineapple" ) || size.equalsIgnoreCase( "bacon" )) {
toppings.add(size);
cnt++;
} else if( size.equalsIgnoreCase( "done" ) ){
break;
}
else{
System.out.print("Choose either 'Pepperoni', 'Fungi', 'bacon' or 'pineapple' Toppings, type 'done' when finshed: ");
}
}
关于java - For循环问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20530490/