【学习目标】
- 熟练掌握 C++ 中的关系、逻辑运算符。
- 熟知关系、逻辑运算符和数学运算符的优先级。
- 学会正确使用选择表达式。
【知识着陆】
1、关系运算符
使用关系运算符需要注意的问题
(1)“等于”与“赋值”的区别;
(2)实型数据(浮点数)的关系运算;
(3)运算符的优先级,如下表:
例1、假设变量定义为“int x=6,y=4,z=5;”,请分别写出下列表达式的值。
(1) x + y > y + z (2) ‘ x ’ < ‘ z ’
(3) x == x >= y (4) (x < y) >(y <= z)
2、逻辑运算符
逻辑运算符的优先级问题
注意:a、整型数据在参与逻辑运算时,根据其值是 0 或非 0,分别当作逻辑值“假”或“真”进行处理。
b、在逻辑表达式的计算过程中,一旦能够确定整个表达式的值,就会立刻停止计算。 (即短路计算)
阅读程序,写出程序的运行结果。
#include<iostream>
using namespace std;
int main(){
int a,b,c,d;
a = 2;b = 3;c = 0;
d = (a > b) && (c = 4);//当判断a>b为假时,后面不会计算,直接赋值d为0
cout << d << ” ” << c << endl;
return 0;
}
3、if语句
if 语句有两种格式:
第一种格式为:
if (表达式) 语句1;
else 语句2;
第二种格式为:
if (表达式) 语句 ;
例1、旅游费用。
【问题描述】
风华公司“南京一日游”的收费标准为:5 人以内(含 5 人)按散客标准,每人 300 元;超过 5 人,按团体标准,每人 280 元。请根据输入的人数,输出其旅游费用。
【输入格式】
一行一个正整数 n,表示人数,1≤n≤5000000。
【输出格式】
一行一个正整数,表示需要的总旅游费用。
【输入样例】
9
【输出样例】
2520
【问题分析】
这是一个“选择性”问题,根据人数 n 来选择不同的收费标准。条件就是 n≤5,如果成立,那么收费为 n×300;否则,收费为 n×280。
#include<iostream>
using namespace std;
int main(){
int n;
cin >> n;
if(n <= 5)
cout << n * 300 << endl;
else
cout << n * 280 << endl;
return 0;
}
或换成另一种形式:
#include<iostream>
using namespace std;
int main(){
int n,ans;
cin >> n;
ans = n * 300;
if(n > 5)
ans = n * 280;
cout << ans << endl;
return 0;
}
4、if 语句的嵌套
在分支结构中经常会遇到这样的情况:如果条件1成立,就去做A事情,否则去做B事情,但是,在做A事情(或者B事情)时,还要根据条件2是否成立,决定是做A1(或者B1)这件子事情,还是去做A2(或者B2)这件子事情。在程序设计中,把这种情况称为分支结构的“嵌套”,一般用来解决三种及以上的分支情况。
例1、 三个数的大小比较。
【问题描述】
输入三个整数 x、y、z,判断其是否满足 x≤y≤z。若满足,输出“YES”;否则,输出“NO”。
【输入格式】
一行三个整数 x、y、z,int 范围以内。
【输出格式】
一行一个单词,表示答案。
【输入样例】
3 6 7
【输出样例】
YES
【问题分析】
前面已经介绍过用逻辑表达式“x<=y &&y<=z”来表示YES”的条件,本题也可以用 if语句的嵌套来解决,如图:
#include<iostream>
using namespace std;
int main(){
int x,y,z;
cin >> x >> y >> z;
if(x <= y)
if(y <= z)
cout << ” YES ” << endl;
else
cout << ” NO ” << endl;
else
cout << ” NO ” << endl;
return 0;
}
使用 if 语句的嵌套需注意的问题
(1)分支结构可以嵌套很多层;
(2)if 与 else 的配对关系;
(3)编程要形成良好的代码风格;
【学习思考】
1、选择结构的嵌套要慎重
2、视频学习Andy微信13734582485