-1

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

这是我所在的工作表上的问题:

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

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

编写一个 switch 语句,将变量 digit 设置为适当的数字,给定字符字母。对于上面映射中未列出的任何其他字符,将 digit 设置为 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语句,应该纠正什么?

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

4

1 回答 1

9

它应该是:

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

随着代码风格的不同,您可能还会看到:

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

这做同样的事情。

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

于 2013-06-17T14:57:22.453 回答