我的if,else if和else循环有什么问题?

时间:2018-10-12 20:32:51

标签: c++ loops if-statement software-design

好吧,所以我在为正在创建的编程编写一个简单的界面,遇到了这个问题,无论如何它都会给我相同的响应。

  #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 

不管我输入什么

我的错误在哪里?我在做什么错了?

1 个答案:

答案 0 :(得分:1)

让我们看看如果您发生以下情况:

if (v == 'B' || 'b')

首先,它检查是否为v == 'B'。让我们假设不是为了进行本演练。然后它将检查(false || 'b')。由于'b'的计算结果始终为true,所以这将为true!

您可能想要:

if (v == 'B' || v == 'b')