第5课 选择结构-if、关系、逻辑运算符
发布时间:
序
C/C++支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构
- 顺序结构:程序按顺序执行,不发生跳转
- 选择结构:依据条件是否满足,有选择的执行相应功能
- 循环结构:依据条件是否满足,循环多次执行某段代码
1. 什么是选择结构
选择结构是计算机编程中的一种基本控制结构,它用于根据程序中的条件执行不同的操作或语句。
2. 关系运算符
★C++中的关系运算符用于比较两个值的大小关系,返回值为true或false。
下面是C++中的关系运算符:
★1. > 大于
★2. < 小于
★3. >= 大于等于
★4. <= 小于等于
★5. == 等于
★6. != 不等于
这些运算符可以用于基本数据类型(如整数、浮点数、字符等)的比较,特别注意判断是否等于是双等号,因为单等号是赋值语句。
3. bool类型
C++中的bool类型是一种基本数据类型,只有两个取值,即true和false,用于表示真和假。对于数值来说,零是假,非零即真。
数据类型 | 定义标识符 | 占字节数 | 数值范围 |
---|---|---|---|
★布尔(逻辑)类型 | bool | 1 | true和false |
bool类型可以使用true或false关键字进行初始化,例如:
bool b1 = true;
bool b2 = false;
4. 逻辑运算符
C++中的逻辑运算符用于对布尔型数据(即true和false)进行逻辑操作,返回值也是布尔型数据。
下面是C++中的逻辑运算符:
★1. && 逻辑与
★2. || 逻辑或
★3. ! 逻辑非
4.1 逻辑与
逻辑与用符号&&表示,常用于两个布尔值的逻辑运算中。逻辑与的运算规则是:当且仅当两个操作数的值都为true时,逻辑与表达式的值才为true,否则表达式的值为false。
下面是逻辑与的运算表格:
操作数1 | 操作数2 | 逻辑与表达式的值 |
---|---|---|
true | true | true |
true | false | false |
false | true | false |
false | false | false |
4.2 逻辑或
逻辑或用符号||表示,常用于两个布尔值的逻辑运算中。逻辑或的运算规则是:当且仅当两个操作数的值都为false时,逻辑或表达式的值才为false,否则表达式的值为true。
下面是逻辑或的运算表格:
操作数1 | 操作数2 | 逻辑或表达式的值 |
---|---|---|
true | true | true |
true | false | true |
false | true | true |
false | false | false |
4.3 逻辑非.
逻辑非用符号!表示,常用于对布尔值进行逻辑取反。逻辑非的运算规则是:如果操作数的值为true,则逻辑非表达式的值为false;如果操作数的值为false,则逻辑非表达式的值为true。
下面是逻辑或的运算表格:
操作数 | 逻辑非表达式的值 |
---|---|
true | false |
false | true |
5. if语句(单分支结构)
语法格式:
if (condition) {
// if语句执行的代码块
}
流程图为:
其中,condition是一个条件表达式,它的值为true或false。如果condition的值为true,那么if语句执行代码块中的语句;如果condition的值为false,那么if语句不执行任何操作,直接跳过。
条件表达式是C++中的一种运算表达式,它的值为true或false。它通常用于控制程序的流程,在if语句、while语句、for语句等控制语句中作为条件判断的依据。
条件表达式通常由以下三个部分构成:
- 操作数1:条件表达式中的第一个操作数,通常是一个变量、常量或表达式,它表示要进行比较的值。
- 运算符:条件表达式中的运算符通常是关系运算符(如==、!=、>、>=、<、<=等)或逻辑运算符(如&&、||等),它表示进行何种比较或逻辑运算。
- 操作数2:条件表达式中的第二个操作数,通常是一个变量、常量或表达式,它与操作数1进行比较或逻辑运算。
例如,下面是一个简单的条件表达式:
x > 5
其中,x是一个变量,>是一个关系运算符,5是一个常量。这个条件表达式的含义是:如果变量x的值大于5,则条件表达式的值为true,否则条件表达式的值为false。
需要注意的是,条件表达式的结果必须是一个布尔值(即true或false),否则会导致编译错误。此外,在进行条件表达式的计算时,会首先计算操作数1和操作数2的值,然后再根据运算符进行比较或逻辑运算,最终得出结果。
例1: 读取一个整数a,如果a为偶数输出yes,否则不输出:
#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。
#include <iostream>
using namespace std;
int main(){
int a;
cin >> a;
if((a>1) && (a<100)){
cout << "yes";
}
return 0;
}
6. if语句(双分支结构)
语法格式:
if (condition) {
// if语句执行的代码块1
} else {
// if语句执行的代码块2
}
流程图为:
其中,condition是一个表达式,它的值为true或false。如果condition的值为true,那么if语句执行代码块1中的语句;如果condition的值为false,那么if语句执行代码块2中的语句。
下面是一个使用if语句实现的简单程序,该程序根据用户输入的分数输出相应的等级:
#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整除