【问题标题】:Logical operators in switch case in c [duplicate]c中switch case中的逻辑运算符[重复]
【发布时间】:2018-02-03 05:07:59
【问题描述】:

我对在 switch case 中使用逻辑运算符有疑问。我试过这个代码在线c编译器(www.onlinegdb.com)。我的想法是使用||运算符在以下情况下评估是否有任何一个条件为真,以便显示“Karaikkal”。但编译器显示:“程序以退出代码 0 完成”。

#include <stdio.h>

int main()
{
char code;
code = getc(stdin);
fflush(stdin);
switch(code){
    case ('K' || 'k'):
        puts("Karaikkal");
}

return 0;

}

 switch(code)
{//this code works, but I want to know how to use logical operator in switch.
case 'K':
case 'k':
  puts("Karaikkal");
  break;
 }

提前致谢。

【问题讨论】:

  • 总结:如果标准没有明确允许,那就是禁止的。
  • 好的,非常感谢..

标签: c


【解决方案1】:

这是一个预期的常量表达式 - 当你把它放在那里时,它会被评估,因为 k 的 ascii 代码是非零的,结果结果是 1 所以你基本上写了 case 1:不是你想要的。

您不能使用这样的表达式来确定它是k 还是K

【讨论】:

    【解决方案2】:

    'K' || 'k'的值为1;这是一个常量表达式。它不是 SQL 等“case”的扩展。

    【讨论】:

      猜你喜欢
      • 2014-07-31
      • 1970-01-01
      • 1970-01-01
      • 2021-12-24
      • 2013-11-25
      • 1970-01-01
      • 1970-01-01
      • 2012-09-02
      • 2012-11-17
      相关资源
      最近更新 更多