c中交换机情况下的逻辑运算符

时间:2018-02-03 05:07:59

标签: c

我怀疑在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;
 }

提前致谢。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

'K' || 'k'的值为1;它是一个常量表达式。它不是&#34; case&#34;的延伸。比如说,SQL。