程序设计-分支结构总结

第一部分 知识点总结(课件复述+个人总结注意事项)

1.关系运算符

六种

(大于)、<(小于)、>=(大于或等于)、<=(小于或等于)、(等于)、!= (不等于)。
****注意赋值号"="和关系运算符等于号“
”的区别!**
使用的时候注意优先级。**

2.逻辑运算符

&&(逻辑与)、|| (逻辑或)和!(逻辑非)
注意:逻辑与和 |逻辑或是双目运算符,逻辑非是单目运算符。
(短路)在逻辑表达式的计算过程中,一旦能够确定整个表达式的值,就会立刻停止计算。
(打代码的时候注意全部运算符之间的优先级的问题)

3.if语句(嵌套)

注意:if 与 else 的配对关系-else与最近的if匹配;
良好的代码风格!(目前还未体会到

4.条件表达式

格式为:
< 表达式 1> ? <表达式 2> : < 表达式 3>
其运算规则为:首先计算表达式 1 的值,若表达式 1 的值为真(非 0),则只计算表达式 2,并将其结果作为整个表达式的值;否则,只计算表达式 3,并将其结果作为整个表达式的值。

5.switch语句

switch (表达式){
case 常量表达式1: 语句组1; [break;]
case 常量表达式2: 语句组2; [break;]

case 常量表达式n: 语句组n; [break;]
[default: 语句组n+1]
}
从前往后依次与case子句中所列出的各个常量表达式的值进行比较,若表达式的值与常量中的值相等,就开始进入相应的case后面的语句组执行,遇到后续的case也不再进行判断(默认匹配),直至遇到break语句或switch语句结束。

注意:switch 后面的表达式,取值只能是整型、字符型、布尔型或枚举型。case 后面的常量表达式,其值类型要与 switch 后面表达式的类型一致。

第二部分 学习收获(典型问题和易错点)

在学习了第三章分支结构程序设计后
我学会了用代码去实现多种可能性的事件。
最主要的是学会了If、else和switch这两个函数,其中我认为复杂问题的处理往往是if、else和switch函数联合起来解决问题。
并与之前的顺序结构所学的知识结合起来,去解决问题。
其中我认为比较典型的题目:

1.“闰年问题”
公历纪年法中,能被4整除的大多是闰年,但能被100整除而不能被400整除的年份不是闰年, 能被3200整除的也不是闰年,如1900年是平年,2000年是闰年,3200年不是闰年。

这就要求我们考虑多种情况,这个时候我们就要用到if、else函数,我的思路是先定义一个整型变量x,代表年份,用给定的范围去判断x所属的情况,再根据情况去输出是否是闰年。

我自己在思考闰年的问题的时候,由于对if else函数的不熟悉,或者说对多种情况的实现还不熟练,最开始我是连着用if函数去实现的。
以下是第一次写闰年问题:

#include<iostream>
using namespace std;
int main()
{
int a;
    cin>>a;
    if(a%4==0)
     cout<<'Y'<<endl;
        if(a%4!=0)
            cout<<'N'<<endl;
    if(a%100!=0)
      cout<<'N'<<endl;
    if(a%100==0)
        cout<<'Y'<<endl;
    if(a%100==0&&a%400==0)
        cout<<'N'<<endl;
    if(a%100==0&&a%3200==0)
        cout<<'N'<<endl;
        return 0;
        }

这种情况我只用到了if…if…if…的写法
第二次写的时候我用了if和else的写法。
值得我注意的是:
多次嵌套if else函数的时候
注意else函数是默认为自己最近的if,注意大括号的使用。

2.邮资问题
根据邮件的重量和用户是否选择加急计算邮费。计算规则:重量在1000克以内(包括1000克), 基本费8元。超过1000克的部分,每500克加收超重费4元,不足500克部分按500克计算;如果用户选择加急,多收5元。

这里我使用了if和switch函数嵌套的方法来解决问题
在这里插入图片描述
这里值得我注意的问题是:
**1.定义x范围的问题。
比如说0<X<1000,用数学表达式就是这么写,但是用程序表达式却不能这样使用。
自己第一次写完程序的时候构建没有问题,但出结果出了多种结果,后来仔细检查一遍程序后才发现是范围的问题,同时给定使用了逻辑与等等。

2.如何去表示不满足500算500的情况,我自己使用了除以500求余的做法,判断是刚好满足500算下一个范围还是不满500,此时也使用了多次if的判断情况,不足之处是没有用else,下次再练习时用else再写一次。

3**.打牌问题.判断被多个整数整除问题等等
还是*注意if else的嵌套,以及注意switch函数后所跟的变量的类型,以及表达-x这个意思的时候,是用(-1)x,和数学表达式作区别。`

第三部分 自我学习感想

这段时间的学习就像上部分所写的那样主要是学会了用分支结构去处理有多种情况的问题,其中往往用到了第一章第二章知识。在处理复杂问题的时候往往要用到多次嵌套,还要注意括号内条件的判断,变量的类型。
这段时间写程序和刚开始的感觉就截然不同了,不再对程序陌生,不再纠结、拘泥于程序的格式是否正确,而是转向解决问题,并把主要是思考方向放在如何写出正确的思路(程序)和注意把所有解的问题想到。写到这里才想到上课说的一元函数和二元函数的解的问题,还没有尝试写过二元函数的解法。
总体来说自我感觉在向着程序设计更好的方向在走,继续加油吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值