【问题标题】:Switch statement in Java error [closed]Java错误中的switch语句[关闭]
【发布时间】:2013-06-13 14:09:09
【问题描述】:

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

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

这次让我们尝试使用 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 设置为适当的数字,给定字符字母。将上面映射中未列出的任何其他字符的数字设置为 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语句以及应该更正什么??

我收到错误消息:我在这里找到了比预期更多的元素:

【问题讨论】:

  • 您不能在这样的案例语句中使用这些 OR。谷歌查询 switch 语句的语法:每个值都需要一个“大小写”。

标签: java switch-statement


【解决方案1】:

应该是:

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

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

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

这做同样的事情。

侧节点:'A' || 'B' 是不合法的,因为|| 是逻辑布尔运算符,它期望两边都有布尔值;但这里你有的是字符。

【讨论】:

  • 这是我将其更改为的简短 sn-p: switch (letter) { case 'A' : case 'B' : case 'C' : digit = 2;休息;这是否正确,因为我仍然遇到同样的错误??
  • 看起来不错,有什么错误?
  • 错误是我发现的元素比我预期的要多,在这里:如果您想查看工作表,请点击此处:labs.web-ide.org:8080/Web_IDE/#Lab-http://labs.web-ide.org/… 您只需单击切换部分 :)
  • 是的,这不是真正的 java 异常,这是“web-IDE”正在产生的东西,使用在“真实”IDE 中正常工作的代码会产生错误。尝试使用像 netbeans 或 eclipse 这样的 IDE
  • 我有 Eclipse,这只是我用于在线课程的工作表 :) 但是如果我使用上面的代码,我在所有情况下都可以使用它吗?如果真棒!
猜你喜欢
  • 1970-01-01
  • 2018-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多