前言
通过一些免费的课程或者是学校的教学,C语言当中较为重要的章节 -分支循环,大部分人应该都有了初步的认识并且写了一些代码,本文将简单提及一些容易遗漏的点。
正文
1. if-else语句
1.1 语句匹配问题
关于if-else语句,比较容易出错的地方是if与else语句的匹配问题,我们可以记住这一句话“else 总是跟最接近 的 if 匹配”
列如示例的代码
![](https://i-blog.csdnimg.cn/blog_migrate/2d57d07b651ef63e3bc1f86312cc1a2f.png)
1.2. 条件判断中,语句编写问题
我们要记住"多个关系运算符不宜连⽤",因为实际上关系操作符参与的关系表达式,通常返回0或1,表示真假,假如连用多个关系运算符,容易变成返回的真假值来跟后面的语句运算,列如
2.switch语句
2.1. default的执行
![](https://i-blog.csdnimg.cn/blog_migrate/d26c5ebc31f906be187323e22512e253.png)
3. while与do-while
3.1. while
while语句中需要注意的在其它中也同样需要注意,列如条件判断语句中的代码会被实际运行,列如 while(scanf("%d", &n) != EOF) ,该语句可以直接让我们输入n的值并且判断有输入就执yu行while循环。
但是切记不要写单写一个赋值语句在条件判断当中,因为赋值语句是永真,会不断循环
以及条件判断语句会比循环多执行一次以便判断是否需要进行下一次循环
3.2. do-while
该语句使用较少,与其它语句的区别为while 和 for 这两种循环都是先判断,条件如果满⾜就进⼊循环,执⾏循环语句,如果不满⾜就跳 出循环; ⽽ do while 循环则是先直接进⼊循环体,执⾏循环语句,然后再执⾏ while 后的判断表达式,表 达式为真,就会进⾏下⼀次,表达式为假,则不再继续循环。
在"输⼊⼀个正整数,计算这个整数是⼏位数?"这样的问题中,我们就可以用do-while语句,因为在初始化n=0后,也可以直接进行循环,因为n即使是 0,也是1位数,可以统计位数的。
4. for语句
我们通常这样书写for语句:for(表达式1; 表达式2; 表达式3),我们需要注意他的语句执行是按照1->2->循环语句->3来执行,也就是最后再执行表达式3
5.continue与goto语句
5.1. continue
continue 可以帮助我们跳过某⼀次循环 continue 后边的代码,直接到循环的判断部分,进⾏下⼀次循环的判断,在循环内直接使用即可,唯一需要注意的就是跳过的代码可能影响到条件的判断导致跳不出循环
5.2. goto语句
使用 goto
语句通常是不推荐的,因为它会导致程序逻辑变得混乱,难以维护和理解,并且它的使用还十分受限,如C和C++,goto
语句通常被限制在函数内部,而不能跳转到另一个函数的内部。这是因为函数之间的控制流跳转应该由函数调用和返回来管理,而不是通过直接的无条件跳转来实现。
笔者初期使用较多的goto end; 现在也用exit(0)来代替了。
尾声
循环与分支实际上是编程语言中较为重要的部分,它会初步构建我们的结构化意识,为日后编写清晰、易读、易维护的代码做铺垫,所以对这部分知识的查漏补缺是十分重要的。