第三单元 分支结构程序设计总结
距上一次写“顺序结构”的博客已经有两周左右了,在这段时间里我们又讲解学习了一个新的单元——“分支结构程序设计”。以下是我对这一单元的内容总结。
一.重点内容、知识点总结
1.关系运算符
在C++中提供了6种关系运算符
(0表示“假”,非0数———常用1表示“真”)
PS:运算符的优先级比较(算术运算符>关系运算符>赋值运算符,有括号的先算括号里的)
2.逻辑运算符
在C++中提供了三种运算符“&&(逻辑与)”、“||(逻辑或)”、“!(逻辑和)”。其中&&和||是双目运算符,!是单目运算符。
在C++中形如“x<=y<=z”要写成“x<=y&&x<=z”类型。
PS:运算符的优先级
3.if语句
①
if(表达式)
语句1;
else
语句 2;
②
if(表达式)
语句;
注意️:用{ }括起来的语句表示复合语句。
4.if语句的嵌套
分支结构的“嵌套”一般用来解决三种及以上的分支情况。
5.条件表达式
条件语句表达式的格式:
<表达式1>?<表达式2>:<表达式3>
运算规则:首先计算表达式1的值,若表达式1的值为真(非0),则只计算表达式2,并且将其结果作为整个表达式的值;否则,只计算表达式3,并将其结果作为整个表达式的值。
6.switch语句
switch(表达式){
case常量表达式1:语句组2;[break;]
case常量表达式2:语句组2;[break;]
⋯
case 常量表达式表达式n:语句组n;[break]
[default:语句组n+1]
}
执行过程:先计算表达式的值,然后从前往后依次与case子句中所列出的各个常量表达式的值进行比较。若表达式的值与常量中的值相等,就开始进入相应的case后面的语句组执行,遇到后续的case也不再进行判断(默认匹配),直至遇到break语句或switch语句结束。default表示表达式与所有常量表达式的值都不匹配,那么就执行其后面的语句组,通常将default放在最后。如果表达式与各分支常量表达式的值都不匹配,不需要执行任何语句,则default可以省略。
switch语句不同if…else 语句,它的所有分支都是并列的,程序执行时,由第一分支开始查找,如果相匹配,执行其后的块,接着执行第2分支,第3分支……的块,直到遇到break语句;如果不匹配,查找下一个分支是否匹配。
二.易错内容总结
1.C++提供的关系运算符与数数学提供的运算符不同!
2.“短路计算”原则。
例:
#include
using namespace std;
int main (){
int a,b,c,d;
a=2;b=3;c=0;
d=(a>b)&&(c=4);
cout <<d<<" "<<c<<endl;
return 0;
}
输出“0 0”。
3.n种情况需要(n-1)个条件语句。
4.if语句(嵌套)内容罗列方法
①用{ }将多条条件语句括起来。
②程序中else字句总与离它最近的前面一个if子句配对。
③“缩进对齐”让同层的if子句与else字句对齐。
5.使用switch语句要注意的问题:
①switch后面的表达式,取值只能是整型、字符型、布尔型或枚举型。case后面的常量表达式,其值类型要与switch后面表达式的类型一致。
②任意两个case后的表达式值必须各不相同,否则将引起歧义。
③语句组可以是一条语句,也可以是一个复合语句。
④多个case语句可以共用一组程序。
6.常见例题:取绝对值、判断闰年、约会问题、打折促销问题……
三.自身体会
我觉得这一单元条目清晰明了,不像上一单元内容那么琐碎,尤其是在高中接触过“条件语句”,所以学起来也比上一单元容易些。
顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。
分支结构适合于带有逻辑或关系比较等条件判断的计算,对于要先做判断再选择的问题就要使用分支结构。学习分支结构不要被(分支又分支)分支嵌套所迷惑,只要理清解决问题的流程,弄清各分支所要执行的功能,分支结构还是不难的。