我的 if 、 else if 和 else 循环有什么问题?
What is wrong with my if , else if and else loop?
好的,所以我正在为我正在创建的程序编写一个简单的界面,我遇到了这个问题,无论如何它都会给我相同的响应。
#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 或 a
和
ERROR: Invalid Option
其他一切
相反,我得到
Binary
不管我输入什么
我的错误在哪里?我做错了什么?
让我们看看你的 if:
中会发生什么
if (v == 'B' || 'b')
首先检查是否 v == 'B'
。为了本演练,我们假设它不是。然后它将检查 (false || 'b')
。由于 'b'
的计算结果总是为真,所以这就是真!
您可能想要:
if (v == 'B' || v == 'b')
好的,所以我正在为我正在创建的程序编写一个简单的界面,我遇到了这个问题,无论如何它都会给我相同的响应。
#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 或 a
和
ERROR: Invalid Option
其他一切
相反,我得到
Binary
不管我输入什么
我的错误在哪里?我做错了什么?
让我们看看你的 if:
中会发生什么if (v == 'B' || 'b')
首先检查是否 v == 'B'
。为了本演练,我们假设它不是。然后它将检查 (false || 'b')
。由于 'b'
的计算结果总是为真,所以这就是真!
您可能想要:
if (v == 'B' || v == 'b')