2016-09-09 15 views
0

我试图将输入与两个不同的字符进行比较,并在满足任一条件时执行if条件。将输入与两个字符进行比较,创建奇数警告

到目前为止我的代码是:

if(i == 'Y'||'y') { 
     //code here 
} 

但GCC编译器吐出警告:

warning: use of logical '||' with constant operand 
     [-Wconstant-logical-operand] 

为什么会出现这种情况?

+0

'如果(我==“Y” ||'y')'不是有效的语法。你想'if(i =='Y'|| i =='y')' – Santi

+2

@Tyle Roper,它是有效的语法。它根本没有做OP想要做的事情。 – ikegami

+0

@ikegami欣赏更正。将留在那里供将来参考。 – Santi

回答

1

你的意思说的是:

if(i == 'Y'|| i == 'y') 

编译器告诉你你需要知道到底是什么!

+0

哦!我明白了,编译器正在试图解决一些关于你或者两个常量相互矛盾的问题。谢谢 – Stegosaurus

0

如果你不想重复条件(即用于选择一个长长的清单),您可以使用:

if (strchr("Yy", i) != NULL) { 
    .... 
} 

您需要#include <string.h>

+0

如果最后没有终止符,那么'i'不是一个有效的字符串? –

+0

为什么需要函数调用来取代简单的比较? OP没有问这个。 –

+0

@WeatherVane,正如我所说:如果你不想一再重复条件,这是有效的 –

相关问题