分支结构程序设计

介绍: 分支结构是C++三大结构之一, 分支结构主要分为6部分,分别是关系运算符,逻辑运算符,if语句,if语句的嵌套,条件表达式,switch语句.

 

                     一、关系运算符

重点内容:

                1.关系运算符:<(小于),>(大于),<=(小于或等于),>=(大于或等于),==(等于),!=(不等于)。

                2.关系表达式:由运算符连起来的表达式。关系表达式的结果是一个逻辑值"真"(1)或"假"(0),"真"表示关系成立,"假"表示关系不成立。

 

注意事项:

                1.等于与赋值的区别:

"=="表示等于,例如a==5表示判断a是否与5相等。"="表示赋值,表示将常数5赋值给变量a。

                2.实型数据(浮点数)的运算关系:

整型数据的关系运算按照数值的大小进行比较,字符型数据按照ASCII码的大小进行比较,但是实型数据在计算机中是近似储存的,直接比较大小会出现问题。0.666666是否等于0.666667呢?这个结果不一定,若要求结果在0.001这个范围内,则相等,若结果在0.000001范围内,则不相等。所以,在C++中,一般用两个数值的差与要求的精度进行比较,判断它们是否相等,或者判断一个数是否等于0。

                3.运算符的优先级:运算符的优先级就是在一个表达式中,既有各种算术运算符,又有各种关系运算符时,按照什么先后顺序进行计算。(1.有括号的先算括号里面。2运算符的优先级由高到低:算术运算符,关系运算符,赋值运算符.)

             

                       二、逻辑运算符

重点内容:

               1.三种逻辑运算符:&&(逻辑与)、‖(逻辑或)、!(逻辑非)。(&&,‖是双目运算符,!是单目运算符)

               2.逻辑表达式:由逻辑运算符连起来的表达式称为逻辑表达式。其运算结果也是一个逻辑值"真"或"假"。

 

典例精选:

       1.一个0~100之间(不包括0和100)的数a。

          解:0<a<100(错误表达)

               a<0&&a<100(正确表达)

               2.短路计算:

例如,对于"A&&B",如果已经算出表达式A为假,那么整个表达式的值肯定为假,于是表达式B就不需要再计算下去了。同理,对于"A‖B",如果已经计算出表达式A为真,那么整个表达式一定为真,于是表达式B也不必计算下去了。

               3.判断X年是否为闰年:

      一种是能被400整除。

      另一种是能被四整除,但不能被100整除。

      表达式:      

      (X%400==0)‖(X%4==0)&&(X%100!=0)

 

注意事项:

                1.整型数据也可以参加逻辑运算:

                   整型数据在参与逻辑运算时,根据                                

                   其值是0或非0,分别当作逻辑      

                   值"假"或"真"进行处理。(非零为                           

                   真,零为假)

               2.逻辑表达式是"短路计算":

                   在逻辑表达式的计算过程中,一旦              

                   能够确定整个表达式的值,就会立     

                   即停止计算。(例如典例2)

 

                            三、if语句

重点内容:

               1.if语句的格式:

   第一种: if(表达式)      

                   语句1;

                else

                   语句2;

      如果表达式成立,执行语句1;

      如果表达式不成立,执行语句2。

   第二种:if(表达式)

                  语句;

       如果表达式成立,执行语句。

 

典例精选:

               1.两个数交换值:{c=a;

                                          a=b;

                                          b=c;}

     

注意事项:

                1.复合语句:用{ }括起来。

 

                     四、if语句的嵌套

 

典例竞选:

                 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…else…语句的if子句里有套了一个if…else…语句,这就是if语句的嵌套。                

 

上述程序所要注意的事项:

 

1.在程序设计中,if语句的嵌套,一 般是用来解决三种及以上的分支情况。

2.上述程序中,在第一层的if子句里嵌套了一个if语句(第二层),也就是嵌套一层。有时,情况分类很多,也可以根据需要,在第一层的else子句里嵌套,还可以在第二层的if里继续嵌套第三层,在第三层的if里继续嵌套第四层……

3.if与else的配对关系:一个程序中可能会出现很多的if和else子句,程序中的else子句总是与离它最近的前面一个if子句配对。

4.编程要形成良好的代码风格:为了增强程序的可读性,if…else…语句及其嵌套都采用"缩进"对齐格式,让同层的if子句与else子句对齐。

 

                       五、条件表达式

 

重点内容:

                1.条件表达式的格式:

       <表达式1>?<表达式2>:<表达式3>

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

 

典例精选:

               判断x年是否为闰年(x%4==0?"YES":(x%100!=0?"YES":"NO"):"NO"))

     

                        六、switch语句

 

重点内容:

                1.switch语句用于多种分支语句。

                2.switch语句的格式:

switch(表达式){

       case 常量表达式1:语句1;[break;]

       case 常量表达式2:语句2;[break;]

       …

       case 常量表达式n:语句n;[break;]

       [default:语句组n+1]

执行过程:先计算表达式的值,然后从前往后依次与case子句中所列出的各个常量表达式的值进行比较,若表达式的值与常量中的值相等,就开始进入相应的case后面的语气组执行,遇到后续的case也不再进行判断(默认匹配),直到遇到break语句或switch语句结束。default表示表达式与所有常量表达式的值都不匹配,那么就执行其后面的语句组,通常将default放在最后。如果表达式与各分支向量表达式的值都不匹配时,不需要执行任何语句,则default可以省略。

 

典例精选:

思考分别输入为ABC,则程序输出什么。

#include<iostream>

using namespace std;

int main(){

     char ch;

     cin>>ch;

     switch(ch){

             case'A':

             case'B':

             case'C':cout<<"pass"<<endl;break;

             }

}

因为三个case子句共用一个语句组"cout<<"Pass"<<endl;break;"所以输出结果均为"Pass".

 

我想我感:

        分支结构学起来不是很难,实用性也非常高,不同的分支种类,适合不同的语句,例如如果分支少的话,可以选择if语句,分支多的话,则可以选择switch啦,非常方便!

        分支结构可以计算分段函数的值,还可以分类讨论事件的不同情况,在数学和现实中都有举足轻重的地位。作为一名专业为数学的学生,我感谢C++中的分支结构,它省了我们数学工作者在计算上的很多麻烦,可以让我们在数学的世界里大步向前,探索更深层的数学奥秘。

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值