java - For循环问题

标签 java for-loop

我正在尝试创建一个循环,用户在其中输入披萨配料的一些值。他们可以吃意大利辣香肠、菠萝等。当他们输入“完成”时,我希望它跳出循​​环。我这一切都在工作。这只是我的 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/

相关文章:

Java REGEX 捕获太多

java - 如何使用 I/O 将 double 从客户端发送到服务器并返回客户端

javascript - for循环在字符串的第一个字母处停止?

performance - 加快矩阵输入速度

java - 当小数为 0 时转换 DecimalFormat.parse() 的结果时出现 ClassCastException

java - 在 jooq groupConcatDistinct 方法上指定分隔符

java - 了解java中的事件监听器

c - 不执行 for 循环的最后一行并且完成后不退出 - C

双重嵌套 for 循环的 Pythonic 快捷方式?

c - 从 c 中的算法实现 for 循环