为什么这个 if 语句的行为不像我预期的那样?
Why does this if statement not behave as I'd expect?
我正在制作一个程序来评估某个东西的价值。我有一个变量,它保存要添加的总值rcoverE
。当我为第二个问题测试"y"时,它是有效的,但当我输入"n"时,无论如何它都会加5。为什么会发生这种情况?
#include <iostream>
using namespace std;
int main(){
int year, yearE, rcoverE;
string rcover, func;
cout << "Enter the decade your thing was produced (eg. 20):";
cin >> year;
cout << "Does you typewriter have original thingy? (y,n):";
cin >> rcover;
rcoverE = 0;
if(rcover == "y" || "Y"){
rcoverE = rcoverE + 5;
}else{
rcoverE = rcoverE + 0;
}
cout << rcoverE;
yearE = 100 - year / 2;
}
if(rcover == "y" || "Y"){
这种情况是错误的,应该是:
if(rcover == "y" || rcover == "Y"){
这:if(rcover == "y" || "Y"){
在逻辑上等价于if(rcover == "y" || "Y" != 0)
,并且"Y" !=
0始终为真。
if(rcover == "y" || "Y")
不会按照你的想法进行评估。实际上,它的计算结果是if("rcover=='y')或if('y')",而不是"rcover===('y'|'y'")。在某些语言中,编译器不允许您这样做,但在C++中,只需放入语句"y"即可返回true。您需要将语句更改为:
if(rcover == "y" || rcover == "Y")
相关文章:
- Insert函数不适用于2 if语句C++
- If语句未被求值C++
- C++嵌套if语句,基本货币交换
- 多个If语句与使用逻辑运算符计算条件的单个语句的比较
- If语句在c++中被忽略
- 比较if语句中的数组值和int值
- 以在Qt中的IF语句中设置时间延迟
- Craps游戏问题,忽略if语句
- c++:定义if语句中的模板
- C++嵌套的 If 语句中,它无法按预期工作
- 如果条件不相关,我应该更喜欢两个 if 语句而不是 if-else 语句吗?
- 需要有关此 if 语句的帮助
- 转换器练习:跳过 if 语句和 if 语句
- 避免在 C++ 中的 if 语句中递增
- 如果仍然不满足要求,如何使 if 语句重复?
- do while 循环中的 if 语句以 yes 或 no 结尾
- 为什么在此C++代码中触发此 if 语句?
- 如何基于平台在制作文件中制作if语句?
- 在 if 语句中使用 GetKeyState 时,它会跳过条件
- C++ If 语句,从其他语句重复