c语言:语言分支和循环讲解

作为一个初学者来说,看到for,while,do_while,if,break等语句可能会觉得头晕脑眩,但当你学完你可能又会觉得自己行了,殊不知自己还太年轻,以下是我的一些关于上述语句的一些总结

1.不建议多个关系操作符连用。以下是代码案例

59524c06bfaf4be4a52ed245961b4327.png

乍一看代码没问题,但当你输入3 3 3的时候,结果返回为Isosceles triangle!,自己想咋不是Ordinary triangle!呢,a ==b== c;,看看这个代码,这可不是你以为的数学语言,第一个式子a==b,如果为真那结果返回为1,反之,为假返回0,接着再拿返回结果和c判断是否相等;如果到这里还没想明白,那就是你上课没好好听,关键是关系表达式会返回值:0或1,而不是数学上的理解。

2.一个好习惯:变量和常量在使用操作符比较时,建议把常量写右边,变量写左边。否则可能你的分支循环会出现意料之外的结果,甚至你可能都发现不了错误点,但代码却能正常执行。举一个最简单的例子

int main()
{
    int a = 3;
    if (a = 5)
    {
        printf("hehe\n");
    }

        

    return 0;
}

也许在这里你一看就发现了错误,a=5,这是赋值不是判断,因为这是单拿出来给你看,但是当你的代码长度变长了呢,你觉得你还能一眼就看出来了吗,但是当我们去把常量写在左边的时候,一般就会主动报错,这可比你去查找错误高校多了。

3.关于goto语句的使用,慎用,否则你的代码可能会程序混乱到你自己都没办法

4.brerk和continue语句区别,break跳出的是整个循环,可以让循环直接罢工,而continue是停止当前循环continue后的代码,循环并没有完全罢工,还可以进行下一次循环。假设一个循环要循环5次,如果你在循环到第三次的时候就执行到了break语句,那么也不会执行后面的2次循环,但continue语句则是会仅仅跳过当前循环continue后的代码,还是会进行后面的2次循环

5.for循环:你可以省略变量的初始化,也就可以省略变量调整,但是你不能省略变量的条件判断,除非你想要的结果是死循环

6.switch语句是一个分支语句,不是循环,还有其中的case和default顺序问题,但是他们根本不用讨论顺序,因为switch是根据表达式的内容来选择case子句。其次,表达式的值类型必须是整型,case后跟的值必须是整型常量表达式,这里值得提醒的是enum本质上也是整型

7.for循环的嵌套可以解决很多类似的图形问题,可以多多练习

8.break语句只能跳出一层循环,如果遇到多层循环可以采用goto语句,所以goto语句也不是一无是处

9.关于”;“分号的使用,切记在for()后加上;,否则你会发现你的变量直接变成了循环完的值,那是因为你在for()直接加;相当于

for()

;(空语句)

这不就是执行空语句吗

10.switch语句如果没有在case子句后加上break语句,是实现不了if语句的效果的,他会一直遍历下去,除非遇到了break;,或是到了末尾

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值