(学习总结2)C语言分支和循环语句

        大家好,这一篇博客讲的是我对学习C语言分支和循环语句的总结。如果有错误,还请读者大大们指出。

if-else语句

        if表达形式:

        表达式成⽴(为真),则语句执⾏,表达式不成⽴(为假),则语句不执⾏。
        
        在C语⾔中, 0为假,⾮0表⽰真 ,也就是表达式的结果如果是0,则语句不执⾏,表达式的结果如果不是0,则语句执⾏。

        if-else表达形式:

        
        在 if 和 else 语句中 默认都只控制⼀条语句 如果要if或else语句同时控制2条及以上的语句,那就要使⽤ {} 将代码括起来。

        嵌套if

        第一种:

        else与另一个if语句连用

        

        第二种:

        嵌套的if语句

        

        以上就是嵌套if语句的语法,有了嵌套if语句,就可以完成更多复杂逻辑的判断。

        悬空else问题:

         如果有多个 if else ,可以记住这样⼀条规则, else 总是跟它上方最接近的 if 匹配
         只要带上适当的⼤括号, 代码的逻辑就会更加的清晰 ,所以⼤家以后在写代码的时候要注意括号的使 ⽤,让代码的可读性更⾼。

关系操作符

        C 语⾔⽤于⽐较的表达式,称为 “关系表达式”(relational expression),⾥⾯使⽤的运算符就称为“关系运算符”(relational operator),主要有下⾯6个。
        >    : ⼤于运算符
        <    :⼩于运算符
         >=  :  ⼤于等于运算符
         <=  : ⼩于等于运算符
         ==  : 相等运算符
         !=   :  不相等运算符
关系表达式 通常返回 0 或 1 ,表⽰真假。C 语⾔中, 0 表⽰假,所有⾮零值表⽰真。 关系表达式常⽤于 if while 结构。
注意: 相等运算符 == 与赋值运算符 = 是 两个不⼀样的运算符, 不要混淆。有时候,可能会不⼩⼼写出,它可以运⾏,但很容易出现意料之外的结果。防⽌出现这种错误,有的程序员喜欢 将变量写在等号的右边 这样的话,如果把 == 误写成 =,编译器就会报错。另⼀个需要避免的错误是: 多个关系运算符不宜连⽤
        以上就是关于操作符,我们需要掌握的。

条件操作符

        条件操作符也叫三⽬操作符,需要接受三个操作数的,如下:

                                         

        条件操作符的计算逻辑是:如果 exp1 为真, exp2 计算,计算的结果是整个表达式的结果;如果 exp1 为假, exp3 计算,计算的结果是整个表达式的结果。

逻辑操作符

        逻辑运算符提供逻辑判断功能,⽤于 构建更复杂的表达式 ,主要有下⾯三个运算符。
          !     :逻辑取反运算符(改变单个表达式的真假)。
         && :与运算符,就是并且的 意思(两侧的表达式都为真,则为真,否则为假)。
        ||    :或运算符,就是或者的意思(两侧⾄少有⼀个表达式为真,则为真,否则为假)。
注:C语言中,非0表示真,0表示假。

        逻辑取反运算符      !

        如果变量为真, “ !变量 ”就是假,如果变量为假, “ !变量 ”就是真。

        与运算符    &&

        && 就是与运算符,也是并且的意思, && 是⼀个双⽬操作符,使⽤的⽅式是 a&&b , && 两边的表达式都是真的时候,整个表达式才为真,只要有⼀个是假,则整个表达式为假。

        或运算符    ||

        || 就是或运算符,也就是或者的意思, || 也是⼀个双⽬操作符,使⽤的⽅式是 a || b || 两边的表达式只要有⼀个是真,整个表达式就是真,两边的表达式都为假的时候,才为假。

        短路

        C语⾔逻辑运算符还有⼀个特点,它总是先对左侧的表达式求值,再对右边的表达式求值,这个顺序是保证的。 如果左边的表达式满⾜逻辑运算符的条件,就不再对右边的表达式求值。这种情况称为“短路”。

switch语句

        除了 if 语句外,C语⾔还提供了 switch 语句来实现分⽀结构。switch 语句是⼀种特殊形式的 if-else 结构,⽤于判断条件有多个结果的情况。它把多重的else if 改成更易⽤、可读性更好的形式。

                                

        上⾯代码中,根据表达式 不同的值,执⾏相应的 case 分⽀。如果 找不到对应的值, 就执⾏ default 分⽀
注:
        switch 后的 expression 必须是 整型表达式 ,case 后的值,必须是 整形常量表达式
        case 和后边的数字之间必须有空格,每⼀个 case 语句中的代码执⾏完成后,需要加上 break ,才能跳出这个switch语句。

        switch语句中的break

        switch 语句也是分⽀效果的,只有在 switch 语句中使⽤ break 才能在跳出 switch 句,如果 某⼀个 case 语句的后边没有 break 语句,代码会继续玩下执⾏ ,有可能执⾏其他 case 语句中的代码,直到遇到 break 语句或者 switch 语句结束。所以在 switch 语句中 break 语句是⾮常重要的,能实现真正的分⽀效果。当然, break 也不是每个 case 语句都得有,这就得根据实际情况来看了。

        switch语句中的default

        在使⽤ switch 语句的时候,我们经常可能遇到⼀种情况,⽐如 switch 后的表达式中的值⽆法匹配代码中的 case 语句的时候,这时候要不就不做处理,要不就得在 switch 语句中加⼊default ⼦句。switch 后边的 expression 的结果不是 value1 ,也不是 value2 的时候,就会执⾏default ⼦句。

        switch语句中的case和default的顺序问题

        在 switch 语句中 case 语句和 default 语句是没有顺序要求的,只要你的顺序是满⾜实
际需求的就可以。 不过我们 通常是把 default ⼦句放在最后处理的

while循环

        C语⾔提供了3种循环语句, while 就是其中⼀种,接下来就介绍⼀下 while 语句。while 语句的语法结构和 if 语句⾮常相似。

                                

        while语句是可以实现循环效果的。

        while语句的执⾏流程

        ⾸先上来就是执⾏判断表达式,表达式的值为0,循环直接结束;表达式的值不为0,则执⾏循环语句,语句执⾏完后再继续判断,是否进⾏下⼀次判断。

 

for循环

        for 循环是三种循环中使⽤最多的, for 循环的语法形式如下:

                        

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

        while循环和for循环的对⽐

       for 和 while 在实现循环的过程中都有初始化、判断、调整这三个部分,但是 for 循环的三个部 分⾮常集中,便于代码的维护,⽽如果代码较多的时候 while 循环的三个部分就⽐较分散,所以从形式上 for 循环要更优⼀些。

do-while循环

        在循环语句中 do while 语句的使⽤最少,它的语法如下:

                                        

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

        do-while循环的执⾏流程

        在 do-while 循环中先执⾏图上的“语句”,执⾏完语句,在去执⾏“判断表达式”,判断表达式的结果是!=0,则继续循环,执⾏循环语句;判断表达式的结果==0,则循环结束。所以在 do-while 语句中循环体是⾄少执⾏⼀次的,这是 do-while 循环⽐较特殊的地⽅。⼀般 do-while 使⽤在循环体⾄少被执⾏⼀次的场景下,所以较少⼀些。

break和continue语句

        在循环执⾏的过程中,如果某些状况发⽣的时候,需要提前终⽌循环,这是⾮常常⻅的现象。C语⾔中提供了 break continue 两个关键字,就是应该到循环中的。

        break 的作⽤是⽤于永久的终⽌循环,只要 break 被执⾏,直接就会跳出循环,继续往后执

⾏。
        continue 的作⽤是 跳过本次循环 continue 后边的代码 ,在 for 循环和 while 循环中有所
差异的。 do.while 语句中的 break continue 的作⽤和 while 循环中⼏乎⼀模⼀样

循环的嵌套

        前⾯学习了三种循环 while do-while for ,这三种循环往往会嵌套在⼀起才能更好的解决 问题,就是我们所说的:循环嵌套。

goto语句

        C语⾔提供了⼀种⾮常特别的语法,就是 goto 语句和跳转标号, goto 语句可以实现在同⼀个函数内跳转到设置好的标号处。

                        ​​​​​​​        ​​​​​​​        ​​​​​​​        

        goto 语句如果使⽤的不当,就会导致在函数内部随意乱跳转,打乱程序的执⾏流程,所以建议是能不⽤尽量不去使⽤;但是 goto 语句也不是⼀⽆是处,在多层循环的代码中,如果想快速跳出使⽤ goto 就⾮常的⽅便了。

        本来在3个循环嵌套中的情况想提前退出得使⽤ break ,⼀个 break 只能跳出⼀层循环,如果3层循环嵌套就得使⽤3个 break 才能跳出循环,所以在这种情况下我们使⽤ goto 语句就会更加的快捷。

​​​​​​​

        若以上总结有误,希望读者大大们能在评论区或私信中告知我。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值