提问者:小点点

将流程从for循环转移到开关case


请有人向我解释如何在我的代码中将控制流从for循环转移到开关case

for (int i = 0; i < 3; i++) {
    String answer;
    System.out.println("Are You Sure ?");
    answer = input.next();

    if (answer.equals("y")) {
        break OUTER;
    }

}

switch(operator) {
case "add":
    result = num1 + num2;
    System.out.printf("%d + %d is equal to %d", num1, num2, result);
    break;
case "subtract":
    result = num2 - num1;
    System.out.printf("%d - %d is equal to %d", num1, num2, result);
    break;
case "multiply":
    result = num2 * num1;
    System.out.printf("%d x %d is equal to %d", num1, num2, result);
    break;  
case "divide":
    result = num2 / num1;
    System.out.printf("%d / %d is equal to %d", num1, num2, result);
    break;    
}

共2个答案

匿名用户

for循环有一个条件表达式,您已经使用它在三次尝试后退出。您可以修改表达式以考虑答案。类似于这样:

String answer = "";

for (int i = 0; i < 3 || !answer.equals("y"); i++) {
    System.out.println("Are You Sure ?");
    answer = input.next();
}

匿名用户

请参考如何在java中使用标签,基本上您的标签必须在您的声明链接范围内

从您的代码中,我假设您只想退出for循环。所以你可以在下面做

OUTER:  for (int i = 0; i < 3; i++) {
    String answer;
    System.out.println("Are You Sure ?");
    answer = "y";

    if (answer.equals("y")) {
        break OUTER;
    }
}