【发布时间】:2022-08-18 16:07:19
【问题描述】:
为什么dis不起作用
我不会有产量的开关盒。但它不编译
userColor 是用户输入的。数据类型字符串
String animalColor = switch (userColor) {
case \"green\" -> {
if (animal.equals(\"Frog\")) yield \"Frog\";
}
case \"yellow\" -> {
yield \"Budgie\";
}
case \"pink\" -> {
yield \"Pig\";
}
case \"brown\" -> {
yield \"Cow\";
}
case \"black\" -> {
yield \"Panther\";
}
case \"white\" -> {
yield \"Mouse\";
}
case \"white/black\" -> {
yield animal;
}
case \"gold\" -> {
yield \"Goldfish\";
}
default -> {
yield \"Unknown\";
}
};
如果它是青蛙或逆戟鲸,她会是什么样子……
String animal = \"\";
if (Objects.equals(userColor, \"green\")) {
System.out.println(\"Do you mean Frog\");
String isFrog = myObj.nextLine(); // Read user input
isFrog = isFrog.toLowerCase(Locale.ROOT);
if (Objects.equals(isFrog, \"yes\")) {
animal = \"Frog\";
}
} else if (Objects.equals(userColor, \"white/black\")) {
while (true) {
System.out.println(\"Do you mean Orca or Zebra\");
String isOrcaOrZebra = myObj.nextLine(); // Read user input
isOrcaOrZebra = isOrcaOrZebra.toLowerCase(Locale.ROOT);
if (Objects.equals(isOrcaOrZebra, \"orca\")) {
animal = \"Orca\";
break;
} else if (Objects.equals(isOrcaOrZebra, \"zebra\")) {
animal = \"Zebra\";
break;
} else {
System.out.println(\"Type Orca or Zebra\");
}
}
}
但是编译很容易
全部编译,但不区分大小写。 它说: 切换表达式规则应在所有执行路径中产生结果
感谢帮助
-
那么如果
userColor是green,而animal不是Frog,那么animalColor会是什么? -
我为你编辑了
-
您的编辑根本没有回答我的问题。第二段代码与 switch 表达式有什么关系?
标签: java