【发布时间】:2019-05-27 21:56:14
【问题描述】:
目标:我正在尝试根据用户的输入输出一条消息。
情况:基本上用户会输入几个字符,例如 5r(5 Red)或 8y(8 Yellow)。预期的符号是先有数字,后有字符,但用户可能不遵守规则。
我使用了 switch 语句(练习的一部分),但输出没有给我预期的结果
代码:
String input = reader.nextLine().toLowerCase();
String firstChar = input.substring(0,1);
String secondChar = input.substring(1);
String answer = "";
switch(firstChar)
{
case "0":
{
switch(secondChar)
{
case "b":
answer = "Zero Blue";
case "r":
answer = "Zero Red";
case "g":
answer = "Zero Green";
case "y":
answer = "Zero Yellow";
}
}
case "1":
{
switch(secondChar)
{
case "b":
answer = "One Blue";
case "r":
answer = "One Red";
case "g":
answer = "One Green";
case "y":
answer = "One Yellow";
}
}
... other case statements....
default:
answer = "not valid";
当用户写入 0b 时,我的输出应该是“零蓝”,但目前它显示的是“无效”。为什么?
【问题讨论】:
-
您忘记在每个
case之间添加break;语句。 -
... @markspace 那是一个愚蠢的。谢谢你。我需要为每个 case 语句加上大括号来包含 break 和语句吗?
-
不,即使里面有多个元素,case 语句也不需要大括号。阅读我的更新答案,了解有关 switch 语句以及使用数组的可行代码的更多信息。
标签: java loops switch-statement