当前位置: 首页 > 知识库问答 >
问题:

Switch语句和不兼容类型?

饶滨海
2023-03-14
public int codeToDigit (String code) throws IOException
{                   
       switch (code)
       {
          case "||:::": return 0; 
          case ":::||": return 1; 
          case "::|:|": return 2; 
          case "::||:": return 3; 
          case ":|::|": return 4; 
          case ":|:|:": return 5; 
          case ":||::": return 6; 
          case "|:::|": return 7; 
          case "|::|:": return 8; 
          case "|:|::": return 9; 
       }
}

共有1个答案

端木令雪
2023-03-14

为了回答您的问题,您不能在java string上 switch,因此您可能应该升级。如果不是,则转换为If/else。

其次,删除所有break语句,因为即使您修复了该问题,这些语句也会引发编译器错误。

最后,如果没有合法的返回,您应该在default列中抛出某种错误。IllegalArgumentException可能是合适的

 类似资料:
  • 处理多种不同类型对象的手段之一是使用 switch 语句。switch 语句能够根据每一种对象的类型选择对该对象合适的操作。例如,在形状层次中,每个形状指定自己的类型数据成员,switch 结构可以根据特定对象的类型确定调用哪个 print 函数。 但是,使用 switch 逻辑存在许多问题。例如,程序员可能会忘记应有的类型测试;在一条 switch 语句中可能会忘记测试所有可能的情况;在修改基于

  • switch 语句可以替代多个 if 判断。 switch 语句为多分支选择的情况提供了一个更具描述性的方式。 语法 switch 语句有至少一个 case 代码块和一个可选的 default 代码块。 就像这样: switch(x) { case 'value1': // if (x === 'value1') ... [break] case 'value2':

  •  使用 switch 语句可以更简洁地实现 if ~ else if 的结构。格式如下。 switch(base_expression) { casecondition_expression1: casecondition_expression2: : : default: : : }  写在 base_expression 位置的表达式会在刚开始时被求值。switch 后面的语句块中的 case

  • C# 中的 switch 语句有些类似于《 if else if 语句》,都可以根据表达式执行某个的语句块,其语法格式如下: switch(表达式){     case value1:     //表达式的值为 value1 时,要执行的代码         break;     case value2:     //表达式的值为 value2 时,要执行的代码         break;   

  • 当条件判断分支太多的时候,我们会使用switch语句来优化逻辑。 package main import "fmt" import "time" func main() { // 基础的switch用法 i := 2 fmt.Print("write ", i, " as ") switch i { case 1: fmt.Println("

  • Swift 条件语句 switch 语句允许测试一个变量等于多个值时的情况。 Swift 语言中只要匹配到 case 语句,则整个 switch 语句执行完成。 语法 Swift 语言中 switch 语句的语法: switch expression { case expression1 : statement(s) fallthrough /* 可选 */