c++ - 我的 if 、 else if 和 else 循环有什么问题?
问题描述
好的,所以我正在为我正在创建的编程编写一个简单的界面,我遇到了这个问题,无论如何它都会给我相同的响应。
#include <iostream>
using namespace std;
int main()
{
char v;
cout << "Binary or ASCII? "<<endl;
cin >> v;
if (v == 'B' || 'b')
{
cout << "Binary " << endl;
}
else if (v == 'A' || 'a')
{
cout << "ASCII " << endl;
}
else
{
cout << "ERROR: Invalid Option" << endl;
}
return 0;
}
该接口应该输出
Binary
如果我输入 B 或 b
ASCII
如果我输入 A 或
和
ERROR: Invalid Option
对于其他一切
相反,我得到
Binary
不管我输入什么
我的错误在哪里?我究竟做错了什么?
解决方案
让我们看看在你的 if 中会发生什么:
if (v == 'B' || 'b')
首先它检查是否v == 'B'
. 让我们假设它不是为了本演练。然后它会检查(false || 'b')
。由于'b'
总是评估为真,这将是真的!
你可能想要:
if (v == 'B' || v == 'b')
推荐阅读
- python - 创建考虑存款和取款的函数
- python - 卡尔曼滤波器预测 t+2 时间步长
- qemu - 当 aarch64 汇编内核代码终止时会发生什么?
- shell - awk中if如何判断关键字?
- javascript - javascript toLocaleTimeString 2 位数只有秒或分钟不起作用
- php - 查看 Swagger API 文档
- unity3d - 如何在 Unity 中使用 MapBox 添加自定义兴趣点
- arrays - 从 ModalController 传递数据的问题
- python - numpy / pandas 矢量化“阈值交叉”逻辑
- linux - 如何在bash脚本中解析文件中的行集