gpt4 book ai didi

java - 单个开关给出三个结果的情况

转载 作者:行者123 更新时间:2023-12-01 19:45:39 27 4
gpt4 key购买 nike

所以我有这段代码:

void go() {
String x = "Hi";

switch (x) {
case "Hi":
System.out.println("Hi");
}
}

返回:嗨

但是当我运行时

void go() {
String x = "Hi";

switch (x) {
case "Hi":
System.out.println("Hi");
case "Bye":
System.out.println("Bye");
}
}

它返回:

嗨再见

为什么会这样。是不是我漏掉了什么?

最佳答案

如前所述,您必须添加 break;每个 case 的语句如果你想停在那个特别的地方。您的代码将如下所示:

void go() {
String x = "Hi";

switch (x) {
case "Hi":
System.out.println("Hi");
break;
case "Bye":
System.out.println("Bye");
break;
}
}

您真正应该做的另一件事是添加 default任何不匹配输入的情况(想象一下有人输入 "Hy" 而不是 "Hi" ,则不会有任何输出...):

void go() {
String x = "Hi";

switch (x) {
case "Hi":
System.out.println("Hi");
break;
case "Bye":
System.out.println("Bye");
break;
default:
System.out.println("Your input was \"" + x
+ "\", please enter either \"Hi\" or \"Bye\" instead!");
}
}

default语句是 case 中未处理的任何内容的选项。声明。

现在回到break s...您可以处理不同的case如果您仅将中断设置为 case 中的某些部分,则效果是一样的s:

void go() {
String x = "Hi";

switch (x) {
case "Hi":
case "Hy":
System.out.println("Hi");
break;
case "Bye":
case "By":
System.out.println("Bye");
break;
default:
System.out.println("Your input was \"" + x
+ "\", please enter either \"Hi\", \"Hy\", \"By\" or \"Bye\" instead!");
}
}

这样做,您将收到 "Hi" 相同的输出和"Hy"无需重复处理 case 的代码s。

关于java - 单个开关给出三个结果的情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53497102/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com