char sign = '+';
cout << "Enter '+' for addition or '-' for subtraction: ";
cin >> sign;
if ( sign != '+' || sign != '-' ) {
cout << "you can only enter '+' or '-'!\n";
return 1;
}
当我输入“+”或“ - ”符号时,将显示错误消息。
答案 0 :(得分:7)
你的真相表中有错误。考虑值'+'
。它不等于'-'
因此打印错误。值'-'
不等于'+'
,因此再次出现错误。
您需要使用&&
代替||
if ( sign != '+' && sign != '-' ) {
...
}
答案 1 :(得分:6)
确实如此。您的代码存在问题:
if ( sign != '+' || sign != '-' )
如果sign == '+'
,则第一个条件为false,但第二个条件为true。显然false || true
评估为true
。
我认为您的意思是使用sign != '+' && sign != '-'
?