首先感谢您的阅读。我也非常清楚如何以我想要的方式让它工作。我只是在尝试而不是获得预期的结果。 当我运行这段代码时,我希望当我输入字母X时,我会被问到 再试一次并重新尝试输入字母B.好吧,我是。然而,程序将突破到开始:标签和进程基于我们在中获得的输入的新值 默认情况。如果我第二次尝试输入字母B,则不会执行任何操作 切换声明。如果您在第二次尝试时输入字母B,程序将打印您输入的B,然后程序将终止。这是为什么?
import java.util.Scanner;
public class Help
{
public static void main(String[] args)
{
Scanner kb = new Scanner(System.in);
System.out.println("Enter the letter B: ");
char input = kb.nextLine().charAt(0);
start:
switch(input)
{
case 'B':
System.out.println("Nice Work!");
break;
default:
System.out.println("Try again: ");
input = kb.nextLine().charAt(0);
System.out.println(input);
break start;
}
}
}
答案 0 :(得分:2)
标记的break
语句用于终止循环或用相应标签标记的switch
语句。它没有将控制权转移回标签。你的switch
陈述只是应该落到程序的最后。
标记为break
的内容只有在嵌套switch
语句并且需要break
来自内部语句的外部语句时才有用。
有关详细信息,请参阅this。
答案 1 :(得分:0)
循环时使用:
import java.util.Scanner;
public class Help
{
public static void main(String[] args)
{
Scanner kb = new Scanner(System.in);
System.out.println("Enter the letter B: ");
while(true)
{
char input = kb.nextLine().charAt(0);
switch(input)
{
case 'B':
System.out.println("Nice Work!");
break;
default:
System.out.println("Try again: ");
}
}
}
}