戳一戳!和我一起走进C++的世界
导读
C++是信息学中非常重要的一门课程,也是绝大多数学生入门信息学、参加信息学竞赛所必备的一门编程语言。
掌握C++,不仅可以让孩子对电脑、编程有更加深刻的认识,也能将学习信息学的方法应用到其他学科领域,特别是能够促进孩子对数学逻辑的理解。
本篇文章中,我们一起来回顾一下if嵌套,总结一下if四大结构与逻辑运算符,并完成课后小练习吧!
1 if 四大结构
1 回顾
之前的课程中,了解到了if判断语句有四种结构,也就是if四大结构,包括:
(1)if;
(2)if-else;
(3)if - else if - else;
(4)if嵌套;
今天我们讲解了后两种,所以我们一起来回顾一下这四种结构,方便我们后续的使用。
在回顾之前,我们要讲一点,我们在上一篇文章中提到的if的简写形式:当判断条件下的执行语句只有一条时,可以有两种简写方式,分别是:
第一种:if判断和执行语句分两行写,执行语句要比if判断语句多一个缩进(tab)
第二种:if判断和执行语句写在同一行,执行语句和if判断语句用空格隔开。
这种简写形式同样适用于if的另外三大结构。
2 if 与 if-else
我们昨天讲了两种结构:if 和 if-else。
这两种结构是 if 判断语句的基本结构,用法如下:
int a;
cin>>a;
if(a>0) cout<<"a是正数"<<endl;
else cout<<"a不是正数"<<endl;
3 if - else if - else
第三种结构是 if - else if - else 结构,else if 可以使用多次。示例如下:
int a;
cin>>a;
if(a<0){
cout<<"a是负数"<<endl;
}
else if(a == 0){
cout<<"a是0"<<endl;
}
else{
cout<<"a是正数"<<endl;
}
使用多次 else if 示例如下:
#include<iostream>
using namespace std;
int main(){
float score;
cin>>score;
if(score>=90)
cout<<"优"<<endl;
else if(score>=80) //隐含条件是score>=90不成立
cout<<"良"<<endl;
else if(score>=70) //隐含条件是score>=80不成立
cout<<"还行"<<endl;
else if(score>=60) //隐含条件是score>=70不成立
cout<<"及格"<<endl;
else //隐含条件是上面的都不成立 ,即score<60
cout<<"不及格"<<endl;
return 0;
}
后面的每次出现的else if都表示当前面所有if和else if 条件不满足时,如果满足当前条件,执行相关语句。最后的else表示当前面所有条件都不满足时,执行相关语句。
所以我们要注意,
后面的判断条件有隐含条件,就是它前面的条件是不成立的。
这样,我们就能在写条件的时候,省略掉某些不必要的条件。
4 if 嵌套
if嵌套就是在判断里面写判断。
每次嵌套可选择的方式有两种,一种是在if中嵌套,一种是在else中嵌套。例如:
if(a<10) {
if(a>0){
cout<<"a是一个一位数"<<endl;
}
else{
cout<<"a<=0"<<endl;
}
}
if(a>0){
cout<<"a>0"<<endl;
}
else{
if(a==0){
cout<<"a=0"<<endl;
}
else{
cout<<"a<0"<<endl;
}
}
if嵌套可以和 if - else if - else 结构互相转化,如果每次都在else中嵌套,先满足外层的else,再满足内层的if,表达的含义和else if是一致的;先满足外层的else,再满足内层的else,表达的含义和else是一致的。
2 逻辑运算符
1 总述
在今天的课程中,我们讲解了新的运算符,逻辑运算符,包括:
(1) && : 逻辑与
(2) || : 逻辑或
(3) ! : 逻辑非
在不同的领域,逻辑运算符有不同的读法,最常用的有如下三种:
(1) 逻辑与、逻辑或、逻辑非
(2) 与、或、非
(3) 或、且、非
逻辑运算符用来连接多个逻辑语句,实现更全面的逻辑功能。
逻辑运算符的结果也只有两种情况,分别是true和false。
2 逻辑与 &&
逻辑与也叫且、与,表达的含义就是并且的意思。
逻辑与的结果总结一下就是:有错就错,都对才对。
示例如下:
1<2 && 3<4 && 5<6 //true
1<2 && 3<4 && 5>6 //false
1>2 && 3>4 && 5>6 //false
3 逻辑或 &&
逻辑或也叫或,表达的含义就是或者的意思。
逻辑或的结果总结一下就是:有对就对,都错才错。
示例如下:
1<2 && 3<4 && 5<6 //true
1<2 && 3<4 && 5>6 //true
1>2 && 3>4 && 5>6 //false
4 逻辑非 !
逻辑非也叫非,表达的含义就是取反的意思。
逻辑非的结果总结一下就是:对变成错,错变成对。
示例如下:
!(1<2) //false
!(5>6) //true
5 运算符优先级与运算顺序
我们学习加减乘除的时候,我们知道,乘除法的优先级高于加减法。运算顺序从左向右,如果有括号,先算括号里面的。
同样,在逻辑运算符中,也是有优先级存在的:
非 > 与 > 或
所以运算顺序可以总结如下:
(1)先算逻辑非,再算逻辑与,最后算逻辑或;
(2)同级运算中,从左往右依次运算;
(3)有括号运算符(),则先算括号运算符里面的;
6 “屏蔽”与“短路”
:
int a = 1;
if(1<=2 || a++) cout<<a<<endl;
输出的a的值是:1。这说明a++并未执行。这是因为:
在逻辑或中,如果前面的已经是正确的,那么结果一定为正确, 后面的就没有执行的必要了,计算机会“偷懒”,不计算后面的内容。我们把这种情况叫做“屏蔽”或者“短路”。
会产生屏蔽与短路的情况有如下两种:
(1)逻辑与中,前面的已经错了,则结果一定为错,后面的不执行,被屏蔽(短路);
(2)逻辑或中,前面的已经对了,则结果一定为对,后面的不执行,被屏蔽(短路);
3 习题
根据今天讲的内容,完成下面的两道习题。
先用注释写好代码的功能、流程,再根据流程完成代码。
1 求最大值
键盘输入4个数,输出其中最大的数字。
2 判断闰年
输入一个年份,输出这一个年份是平年还是闰年。
AI与区块链技术
长按二维码关注