首页 > 解决方案 > 我的 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 

不管我输入什么

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

标签: c++loopsif-statementsoftware-design

解决方案


让我们看看在你的 if 中会发生什么:

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

首先它检查是否v == 'B'. 让我们假设它不是为了本演练。然后它会检查(false || 'b')。由于'b'总是评估为真,这将是真的!

你可能想要:

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

推荐阅读