Java错误中的switch语句

时间:2013-06-17 14:56:49

标签: java switch-statement

我遇到了在线工作表的问题,我想知道是否有人可以向我展示我的问题的正确代码,并解释为什么应该这样编写。

以下是我所在工作表的问题:

这次让我们尝试使用switch语句将电话拨号盘上的字符转换为相应的数字。回想一下

'A','B','C'映射到2 'D','E','F'映射到3 'G','H','我'映射到4 'J','K','L'映射到5 'M','N','O'映射到6 'P','Q','R','S'映射到7 'T','U','V'映射到8 'W','X','Y','Z'映射到9

写一个switch语句,在给定字符字母的情况下将变量数字设置为适当的数字。对于上面映射中未列出的任何其他字符,将数字设置为0。

以下是我尝试使用switch语句解决问题:

switch (letter)
{

case 'A' || 'B' || 'C' : digit = 2;

break;

case 'D' || 'E' || 'F' : digit = 3;

break;

case 'G' || 'H' || 'I' : digit = 4;

break;

case 'J' || 'K' || 'L' : digit  = 5;

break;

case 'M' || 'N' || 'O' : digit = 6;

break;

case 'P' || 'Q' || 'R' || 'S' : digit = 7;

break;

case 'T' || 'U' || 'V' : digit = 8;

break;

case 'W' || 'X' || 'Y' || 'Z' : digit = 9;

break;

default : digit = 0;

break;
}

我该怎么做这个switch语句以及应该纠正什么?

我收到错误消息:我发现了比预期更多的元素,这里:

1 个答案:

答案 0 :(得分:9)

应该是:

case 'A': case 'B': case 'C':
    // do something

由于代码样式各不相同,您还可以看到:

case 'A':
case 'B':
case 'C':
    // do something

这也是一样的。

侧节点:'A' || 'B'不合法,因为||是一个逻辑布尔运算符,它期望双方都有布尔值;但是这里有你的角色。

相关问题