【问题标题】:How to write switch statement with "or" logic?如何用“或”逻辑编写 switch 语句?
【发布时间】:2013-02-25 10:04:22
【问题描述】:

下面,我创建了一个可以正常工作的简单 switch 语句。我想知道如何更改此代码,使其变为 switch(c),然后是 case 1、case 2、case 3、默认值。

示例:if char is 'w' || char is 'W' return WHITE

我尝试了一个简单的 if 语句,尽管编译成功,但它没有给我正确的输出。希望你能帮忙。谢谢! :)

static COLORS color(char c) {

    switch(toupper(c)) {

        case 'W' : return WHITE;

        case 'B' : return BLUE;

        case 'R' : return RED;

        default  : return DEFAULT;
    }
}

【问题讨论】:

标签: c switch-statement or-operator


【解决方案1】:

您可以简单地将多个案例组合在一起:

switch (c) {
  case 'w':
  case 'W':
    // Code
    break;
  default:
    // Code
}

请参阅 MSDN switch() 文档。

【讨论】:

    【解决方案2】:

    试试下面的

    switch (c) { 
      case 'w':
      case 'W':
        return WHITE;
      case 'b':
      case 'B':
        return BLUE;
      case 'r':
      case 'R':
        return RED;
      default:
        return DEFAULT;
    }
    

    【讨论】:

      【解决方案3】:
      switch(c){
      
          case 'w' :
          case 'W' : return WHITE;
      
          case 'b' :
          case 'B' : return BLUE;
      
          case 'r' :
          case 'R' : return RED;
      
          default  : return DEFAULT;
      }
      

      会起作用的。

      【讨论】:

        【解决方案4】:

        在您的代码中,您可以尝试switch((islower(c) ? toupper(c): c)) 并将其余代码保留在当前表单中。

        【讨论】:

        • 我只想写toupper(c),但是对于这种不同的方法+1。
        猜你喜欢
        • 1970-01-01
        • 2011-07-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-12
        • 1970-01-01
        相关资源
        最近更新 更多