C++旧版课程库
C++第 1 期查看课程总览

015 逻辑运算或

主要内容

我们先回顾一下 else if 的基本结构。本节课的内容将和它息息相关。

1. else if 结构


if(表达式 1)
{
    // 执行语句 1 // 只有一条语句的话,大括号可以省略。
}
else if(表达式 2)
{
    // 执行语句 2
}
else
{
    // 执行语句 3
}
小练习: Python 成绩达标或者 C++ 成绩达标,都可以获得“大师码编程之星”荣誉称号。 请编程,模拟判断,小明是否可以获奖。 请输入 1 或者 2,分别表示 “Python 成绩达标” 和 “C++ 成绩达标”。

// 请编程。完成后,查看后续示例程序。




示例程序:

#include < iostream >
using namespace std;
int main()
{
    int input(0);
    cout << "请输入 1 或者 2" << endl;
    cin >> input;
    if(input == 1)
        cout << "大师码编程之星" << endl;
    else if(input == 2)
        cout << "大师码编程之星" << endl;
    else
        cout << "你还需要努力哦!" << endl;

    return 0;
}

2. 逻辑关系“或”:有一个成立

我们来详细看一下上面的 if 结构。

if(input == 1)                        // 条件 1
{
    cout << "大师码编程之星" << endl;   // 语句 X,注意,和下面的一样。
}
else if(input == 2)                   // 条件 2
{
    out << "大师码编程之星" << endl;    // 语句 X,注意,和上面的一样。
}
请问:(选择题) 如果,我们希望执行“语句 X”,“条件表达式 1 ” 和 “条件表达式 2 ” 应该是什么关系?
  • A. “条件表达式 1 ” 和 “条件表达式 2 ” 都成立;
  • B. “条件表达式 1 ” 成立, “条件表达式 2 ” 不成立;
  • C. “条件表达式 1 ” 不成立, “条件表达式 2 ” 成立;
  • D. “条件表达式 1 ” 和 “条件表达式 2 ” 都不成立;
  • 这里,应该是选择BCD; 还记得我们在数学中,怎么表达这样的关系吗? 上面的关系,在数学中被称为: 逻辑关系“或”
    input 1 0 2
    不等式是否成立 成立 不成立 成立

    3. 逻辑关系表达式

    上面的数学不等式,在 C++ 可以表达为:
      
    input == 1 || input == 2
    
  • C++ 中,使用 || 来表示 逻辑关系“或”
  • 符号 || 表示:判断“条件表达式 1 ” 和 “条件表达式 2 ” 是不是有一个成立;
  • 这也是一种“表达式”,我们称之为“逻辑关系表达式”逻辑关系“或” 是其中的一种;
  • 【注意】判断相等,需要使用符号 ==
  • 上面的关系,可以再写作:
      
    bool is_ok;
    is_ok = input == 1 || input == 2;
    is_ok = (input == 1) || (input == 2); // 可以有括号
    
    “逻辑关系表达式”的取值说明:
      
    bool is_ok =  “条件表达式 1 ” || “条件表达式 2 ”
    
    条件表达式 1 条件表达式 2 is_ok
    true true true
    false true true
    true false true
    false false false

    4. 逻辑关系“或”的辅助理解

  • 逻辑关系“或”的理解1:
  • 逻辑关系“或”的理解2:
  • 逻辑关系“与”的理解3:
  • 习题

    课后练习