分支结构程序设计总结
一.知识点总结
1.关系运算符
举例:==,!=,<,>,<=,>=
需要注意:(1)“等于”和“赋值”的区别
(2)实型数据(浮点数)的运算
例如:float const zero=1e-3;
(3)运算符的优先级
例如x==x>=y
先执行“>=
”运算,再执行“==
”
2.逻辑运算符
举例:&&(逻辑与),||(逻辑或),!(逻辑非)
需要注意:(1)这里的运算符也要遵循运算优先级
(2)在用逻辑运算符之前先想清楚逻辑关系
例如:判断闰年(x%400==0)||((x%4==0)&&(x%100)!=0))
3.if语句和if语句的嵌套
在解决一些分支结构或选择结构的时候可以用到if语句
格式`
if(表达式)
语句1;
else
语句2;
即用c++语言描述:如果…,会…;否则会…
if语句的嵌套就是更复杂的if语句,来解决条件更多的分支结构问题。
嵌套在语法中的含义是:一个if语句里套着一个if语句,可以套多层。
例如:
if(a>b){
if(a>c)
cout<<a<<' ';
else
cout<<b<<' ';
}
cout<<c<<endl;
4.条件表达式
用更简单的c++语言编写一些复杂的语法
方便解决分段函数问题
格式:<表达式1>?<表达式2>:<表达式3>
规则:先计算表达式1,若表达式1的值为真,则只计算表达式2,并将结果作为整个表达式的值;否则,只计算表达式3,并将其结果作为整个表达式的值。
例如:(x%2==0 ? "x is even" : "x is odd")
5.switch语句
可以用switch语句替代复杂的if语句嵌套,使整个语法更加简洁
格式
switch(表达式){
case 常量表达式1:语句组1;[break;]
case 常量表达式2:语句组2;[break;]
...
case 常量表达式n:语句组n;[break;]
[default:语句组n+1;]
}
二.易错点
1.遇到较复杂的逻辑问题时,if语句的使用容易出错
解决方法:多读两遍题,找准所有条件,捋清逻辑关系再下手
2.if语句在使用时,容易落下括号
例如:
if a>b
{cout<<a<<endl;}
3.if语句在使用时, 误用分号
例如
if(a>b);
{cout<<a<<endl;}
会造成语法错误,无法编译。
解决方法:在每打一次“if”的时候都检查一遍括号和分号。
4.赋值=
和等于==
的混淆
5.复杂的运算中,容易出现运算优先级的混乱
解决方法:提高算式的优先级可以加括号,优先计算括号内的算式
6.在switch语句中,case后的是常量表达式。要结束语句,后边要跟[break;]
三.感受
在学习了分支结构程序设计后,我掌握了以上几种解决分支结构问题的简单方法。在做类似于“打牌”,“判断奇偶性”的题目时,学会了使用if语句的嵌套表达较复杂的逻辑关系,但明显感觉乏力。因为写出的程序基本都是一种语法,显得很啰嗦。在做“判断闰年”等的题目时,还不能流畅的用一个复合的逻辑语句或条件表达式表达,写程序还停留在if…else…的层面。所以我想在以后的程序书写时,应该多尝试新的语法和表达式。另外,虽然我是数学系的学生,但我的逻辑思维能力确实不咋地,在做一些读起来稍微复杂的题目时多少有些头疼,所以我还要加强一下逻辑思维能力和阅读能力,先把问题写到演草纸上分析分析,再用代码写出来,我想这样可以降低做题时的错误率。学习c++和学习英语有些类似,对于英语底子差的学习者来说,背单词是提成绩的最快捷的方法。我想在以后的c++学习中,提前预习和掌握更多的语法尤为重要。