Skip to content

第5课 选择结构-if、关系、逻辑运算符

发布时间:

C/C++支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构

  • 顺序结构:程序按顺序执行,不发生跳转
  • 选择结构:依据条件是否满足,有选择的执行相应功能
  • 循环结构:依据条件是否满足,循环多次执行某段代码

1. 什么是选择结构

选择结构是计算机编程中的一种基本控制结构,它用于根据程序中的条件执行不同的操作或语句。
Alt

2. 关系运算符

C++中的关系运算符用于比较两个值的大小关系,返回值为true或false。

下面是C++中的关系运算符:

1. > 大于
2. < 小于
3. >= 大于等于
4. <= 小于等于
5. == 等于
6. != 不等于

这些运算符可以用于基本数据类型(如整数、浮点数、字符等)的比较,特别注意判断是否等于是双等号,因为单等号是赋值语句。

3. bool类型

C++中的bool类型是一种基本数据类型,只有两个取值,即true和false,用于表示真和假。对于数值来说,零是假,非零即真。

数据类型定义标识符占字节数数值范围
布尔(逻辑)类型bool1true和false

bool类型可以使用true或false关键字进行初始化,例如:

js
bool b1 = true;
bool b2 = false;
   

4. 逻辑运算符

C++中的逻辑运算符用于对布尔型数据(即true和false)进行逻辑操作,返回值也是布尔型数据。

下面是C++中的逻辑运算符:

1. && 逻辑与
2. || 逻辑或
3. ! 逻辑非

4.1 逻辑与

逻辑与用符号&&表示,常用于两个布尔值的逻辑运算中。逻辑与的运算规则是:当且仅当两个操作数的值都为true时,逻辑与表达式的值才为true,否则表达式的值为false。

下面是逻辑与的运算表格:

操作数1操作数2逻辑与表达式的值
truetruetrue
truefalsefalse
falsetruefalse
falsefalsefalse

4.2 逻辑或

逻辑或用符号||表示,常用于两个布尔值的逻辑运算中。逻辑或的运算规则是:当且仅当两个操作数的值都为false时,逻辑或表达式的值才为false,否则表达式的值为true。

下面是逻辑或的运算表格:

操作数1操作数2逻辑或表达式的值
truetruetrue
truefalsetrue
falsetruetrue
falsefalsefalse

4.3 逻辑非.

逻辑非用符号!表示,常用于对布尔值进行逻辑取反。逻辑非的运算规则是:如果操作数的值为true,则逻辑非表达式的值为false;如果操作数的值为false,则逻辑非表达式的值为true。

下面是逻辑或的运算表格:

操作数逻辑非表达式的值
truefalse
falsetrue

5. if语句(单分支结构)

语法格式:

js
if (condition) {
  // if语句执行的代码块
}
   

流程图为: Alt

其中,condition是一个条件表达式,它的值为true或false。如果condition的值为true,那么if语句执行代码块中的语句;如果condition的值为false,那么if语句不执行任何操作,直接跳过。

条件表达式是C++中的一种运算表达式,它的值为true或false。它通常用于控制程序的流程,在if语句、while语句、for语句等控制语句中作为条件判断的依据。

条件表达式通常由以下三个部分构成:

  1. 操作数1:条件表达式中的第一个操作数,通常是一个变量、常量或表达式,它表示要进行比较的值。
  2. 运算符:条件表达式中的运算符通常是关系运算符(如==、!=、>、>=、<、<=等)或逻辑运算符(如&&、||等),它表示进行何种比较或逻辑运算。
  3. 操作数2:条件表达式中的第二个操作数,通常是一个变量、常量或表达式,它与操作数1进行比较或逻辑运算。

例如,下面是一个简单的条件表达式:

js
x > 5
   

其中,x是一个变量,>是一个关系运算符,5是一个常量。这个条件表达式的含义是:如果变量x的值大于5,则条件表达式的值为true,否则条件表达式的值为false。
需要注意的是,条件表达式的结果必须是一个布尔值(即true或false),否则会导致编译错误。此外,在进行条件表达式的计算时,会首先计算操作数1和操作数2的值,然后再根据运算符进行比较或逻辑运算,最终得出结果。

例1: 读取一个整数a,如果a为偶数输出yes,否则不输出:

js
#include <iostream>
using namespace std;
int main(){
    int a;
    cin >> a;
    if(a % 2 == 0){
        cout << "yes";
    }
    return 0;
}
   

若题目改成“读取一个整数a,如果a为奇数输出no,否则不输出”。应该怎么写。 例2: 【入门】整数判断
读入一个数,若这个数大于1,并且小于100,则输出yes。

js
#include <iostream>
using namespace std;
int main(){
    int a;
    cin >> a;
    if((a>1) && (a<100)){
        cout << "yes";
    }
    return 0;
}
   

6. if语句(双分支结构)

语法格式:

js
if (condition) {
    // if语句执行的代码块1
} else {
    // if语句执行的代码块2
}
   

流程图为: Alt
其中,condition是一个表达式,它的值为true或false。如果condition的值为true,那么if语句执行代码块1中的语句;如果condition的值为false,那么if语句执行代码块2中的语句。

下面是一个使用if语句实现的简单程序,该程序根据用户输入的分数输出相应的等级:

js
#include <iostream>

using namespace std;

int main() {
    int score;

    cout << "Enter your score: ";
    cin >> score;

    if (score >= 90) {
        cout << "Your grade is A" << endl;
    } else {
        cout << "Your grade is not A" << endl;
    }

    return 0;
}
   

例3: 【入门】简单判断
例4: 【入门】求绝对值
例5: 【入门】判断一个数能否同时被3和5整除

7. 综合练习

  1. 【入门】判断奇偶数
  2. 【入门】判断整除
  3. 有一门课不及格的学生