我试图将输入与两个不同的字符进行比较,并在满足任一条件时执行if条件。将输入与两个字符进行比较,创建奇数警告
到目前为止我的代码是:
if(i == 'Y'||'y') {
//code here
}
但GCC编译器吐出警告:
warning: use of logical '||' with constant operand
[-Wconstant-logical-operand]
为什么会出现这种情况?
我试图将输入与两个不同的字符进行比较,并在满足任一条件时执行if条件。将输入与两个字符进行比较,创建奇数警告
到目前为止我的代码是:
if(i == 'Y'||'y') {
//code here
}
但GCC编译器吐出警告:
warning: use of logical '||' with constant operand
[-Wconstant-logical-operand]
为什么会出现这种情况?
你的意思说的是:
if(i == 'Y'|| i == 'y')
编译器告诉你你需要知道到底是什么!
哦!我明白了,编译器正在试图解决一些关于你或者两个常量相互矛盾的问题。谢谢 – Stegosaurus
如果你不想重复条件(即用于选择一个长长的清单),您可以使用:
if (strchr("Yy", i) != NULL) {
....
}
您需要#include <string.h>
如果最后没有终止符,那么'i'不是一个有效的字符串? –
为什么需要函数调用来取代简单的比较? OP没有问这个。 –
@WeatherVane,正如我所说:如果你不想一再重复条件,这是有效的 –
'如果(我==“Y” ||'y')'不是有效的语法。你想'if(i =='Y'|| i =='y')' – Santi
@Tyle Roper,它是有效的语法。它根本没有做OP想要做的事情。 – ikegami
@ikegami欣赏更正。将留在那里供将来参考。 – Santi