如何用“或”逻辑编写switch语句?

时间:2013-03-10 01:59:03

标签: c switch-statement or-operator

下面,我创建了一个工作正常的简单switch语句。我想知道如何更改此代码,因此它是switch(c),然后是case 1,case 2,case 3,default。

示例: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;
    }
}

4 个答案:

答案 0 :(得分:6)

尝试以下

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

答案 1 :(得分:6)

您可以简单地将多个案例捆绑在一起:

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

请参阅MSDN switch()文档。

答案 2 :(得分:1)

switch(c){

    case 'w' :
    case 'W' : return WHITE;

    case 'b' :
    case 'B' : return BLUE;

    case 'r' :
    case 'R' : return RED;

    default  : return DEFAULT;
}

会工作。

答案 3 :(得分:1)

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