分支与循环(上)

C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构,C语⾔是能够实现这三种结构的,而我们接下来将讲讲其中的选择、循环结构。
我们可以使⽤ if 、 switch 实现分⽀结构,使⽤ for 、 while 、 do while 实现循环结构。

 if语句

if语句是选择结构的一种语句,它的结构是:

if(表达式)                                                                                                                                        

     语句

    

其中,表达式为真则语句执行,表达式为假则语句不执行                                                                                                        关系表达式,逻辑表达式通常返回0或1,表示真假。 

而与if语句所相配的是else语句,它的结构是:

else                                                                                                                语句

else语句是在if语句为假时执行,而if语句为真时则不执行                                                                                                             应注意:if和else后面的语句如果有多条应用{}括起来

嵌套if:在if else语句中,else可以与另一个if语句连用构成多重判断,有以下格式:

           1. 

                   if()                                                                                               {                                                                                                 if()                                                                                            语句                                                                                         else                                                                                           语句                                                                                              }                                                                                                    else                                                                                           语句     

                                                                                                                           2.                                                                                                 if()                                                                                               语句                                                                                          else  if()                                                                                       语句                           

悬空else问题:如果有多个if和else,可以记住这么个规则→else总是与最近的if相匹配(除非被括号控制)。

关系操作符

关系运算符有以下六个:                                                                     <:小于运算符     >:大于运算符     <=:小于等于运算符   >=:大于等于运算符   ==:相等运算符         !=:不相等运算符                                                                                                                 应注意=是赋值符号,==才是相等运算符,容易将赋值和判断混淆---为了避免这个错误,可以将变量写在等号的右边 

 如:if(3==x)

                                                                                                                  多个运算关系符不宜连用(如x<y<z→x<y(得出真或假)<z→真或假),应该用逻辑运算符相连(x<y&&y<z)。                                                                                                      关系表达式,逻辑表达式通常返回0或1,表示真假。

条件操作符—三目操作符(c唯一):表达式1 ? 表达式2 : 表达式3                                                                                             条件操作符运算规则:先求解表达式1,若其值为真(非0)则将表达式2的值作为整个表达式的取值,否则(表达式1的值为0)将表达式3的值作为整个表达式的取值。

逻辑运算符

逻辑运算符有以下三个:                                                                   !:取反运算符(改变单个表达式真假)      &&:与运算符(两侧的表达式都为真则为真,否则为假)        ||:与运算符(两侧至少有一个表达式为真,则为真,否则为假)

短路:&&→左边为假,右边不再计算---右边代码无需执行(即右边变量不变)‖→左边为真,右边不再计算---右边代码无需执行(即右边变量不变)。

switch语句

除if外的选择语句,它的格式如下

switch(表达式)                                                                                         case 标号1:    语句                                                                       case 标号2:    语句                                                                     case 标号3:    语句                                                             default:           语句           

 switch后面的表达式必须为整形(包括字符型)表达式 case后面的值必须为整形常量表达式(可以为表达式)                                                                                                                       case决定switch入口,break决定switch出口                             default语句后面也可加break,且default和case间没有顺序要求(case都不匹配、或者switch语句中没有break→执行default),看个人需要。

while循环

while循环格式:初值→while(判断条件)→循环体(需要调整部分(如i++)写在循环体里,初值也可写在循环体里)

while(表达式)                                                                                            语句

while语句⾸先上来就是执⾏判断表达式,表达式的值为0,循环直接结束;表达式的值不为0,则执⾏循环语句,语句执⾏完后再继续判断,是否进行下一次循环 。                                                                                                            循环语句的限制条件可以i++也可以++i

for循环

for循环格式:for(表达式1(初始化);表达式2(判断条件);表达式3(调整部分)) for循环初始、判断、调整都可以省略,但是判断部分省略表示判断部分恒为真

for(表达式1;表达式2;表达式3)                                                  语句

首先执⾏ 表达式1 初始化循环变量,接下来就是执⾏ 表达式2 的判断部分, 表达式2 的结果如果
==0,则循环结束; 表达式2 的结果如果!=0则执⾏循环语句,循环语句执⾏完后,再去执⾏表 达式3 ,调整循环变量,然后再去 表达式2 的地⽅执⾏判断, 表达式2 的结果是否为0,决定循环是否继续。整个循环的过程中,表达式1初始化部分只被执⾏1次,剩下的就是表达式2、循环语句、表达式3在循环。

for循环的表达式可以省略,但是非必要不要省略,比如下面的例子:

ae2c11848ed9460e8c8f7f84379b5a5a.png

e3aaa273839c4715a3f9d1bf780ec9b4.png可以看出在内循环省略了初始化后,就没有产生我们所要的结果                                                 

 

do while循环                                                                                                       

do while语句格式:do 循环体(多语句在do和while间用{}括起来) while(判断条件); 特点:循环体至少执行一次(不管条件是否符合)

do                                                                                                           语句                                                                                           while(表达式);         

while和for这两种循环都是先判断,条件如果满⾜就进⼊循环,执⾏循环语句,如果不满⾜就跳
出循环;⽽do   while循环则是先直接进⼊循环体,执⾏循环语句,然后再执⾏while后的判断表达式,表
达式为真,就会进⾏下⼀次,表达式为假,则不再继续循环。

continue语句和break语句

break格式:break;         作用:跳出循环                            continue格式:continue; 作用:跳过本轮循环后面的代码              注意:不是直接跳到判定语句,而是跳过后面代码→所以在while中如果continue在调整部分前面,会造成死循环,而在for中则正常输出(除非调整条件写在循环体中且在continue后面) do while则和while基本一致。

goto语句格式:         

         goto    标签:                                                                                                           ......                                                                          标签:                                                                                                             ......                                                                                                                 

goto语句可以实现在同一个函数内跳转到设置好的标号处。(goto语句可以往前跳,也可往后跳)                      本来for循环想提前退出得使⽤break,⼀个break只能跳出⼀层for循环,如果3层循环嵌套就得使⽤3个break才能跳出循环,所以在这种情况下我们使⽤goto语句就会更加的快捷。

附加

%10取底位,/10取底位前面的位(如:①452%10得2,452/10得45 ②56%10得6,56/10得5) 可用于如:①对一个数进行逆序排列 ②取出某个数的个位、十位、百位…… 等                                 

例如:对一个数进行逆序排列,代码如下                                                                                               65e780a40a60427197305b7642ab6a84.png

                                                                                                                                        

以上就是个人对于分支和循环的部分理解和整理,希望能给大家带来帮助!          

7f806f3c18df47eeb004dab9a725cb73.jpeg

 

 

 

 

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值