☰
c语言之分支与循环的知识梳理以及感悟(个人理解)
2026/10/28 1:17:27 网站建设 项目流程

目录

一.介绍

1.1顺序结构

1.2.1选择结构(if)

1.2.2选择结构(switch)

1.3.1循环结构(while)

1.3.2循环结构(for)

1.3.3循环结构(do...while)

二、个人总结

(一)if

(二)switch

(三)循环

一.介绍

1.1顺序结构

顺序结构是编程中最基本的程序结构之一,它按照代码由上向下的顺序依次执行,没有任何跳转或分支。它的特点是:线性执行、逻辑简单、无控制语句、适用于简单任务。

像这种求圆的面积,就是由上到小的顺序依次执行,scanf函数等待键盘的输入,从而会暂停,如果scanf放在int r = 0;上面或者放在printf("请输入半径:");前面都会导致逻辑错误,这种就是一个好例子从上到下,任何顺序的调换都会导致逻辑错乱。

#include<stdio.h> int main() { int r = 0; printf("请输入半径:"); scanf("%d", &r); printf("圆的面积为%lf", 3.145 * r * r); return 0; }

1.2.1选择结构(if)

选择结构是一种程序控制结构,用于根据给定的条件来做出决定是否执行这一块的代码。选择结构的分类:单分支选择结构,只有一个if构成的选择;双分支选择结构,使用一对if else的结构来选择对应的代码;

嵌套选择结构,使用多对if else的结构;

#include<stdio.h> int main() { int age = 0; scanf("%d", &age); if (age < 18)//if(表达式) { printf("青少年\n"); } else { if (age < 30) { printf("青年\n"); } else { if (age < 55) { printf("中年人\n"); } else { if (age < 80) { printf("老年人\n"); } } } } return 0; }

多重分支选择结构,顾名思义就是使用多对if else,判断几次这与嵌套选择结构有区别,区别就是嵌套选择如果前面条件已经符合了,后面else if是不会执行的,而多重分支选择结构就是前面一对if else 条件符合了,后面一对if else是可以判断的也会执行。

选择结构的应用场景:

条件判断;决策制定;数据验证;循环控制(for while do...while)

1.2.2选择结构(switch)

switch这个看起来简单,但是对于我这个萌新来说,这里什么都是难的,首先switch选择语句可以选择的条件与if一样,就是条件符合,switch就能用,但是switch条件不符合就和if不一样了,switch不符合就直接“罢工”了,不像if 还有后路,不符合还能靠else 来执行其他代码,但是switch的选择可以有很多,和switch并用的有continue和break。

#include<stdio.h> int main() { int input = 0; scanf("%d", &input); switch (input)//这里的input必须是整型表达式,而字符也属于整型家族,字符的来源就是ASCII值。 { case 0://case 后面也需要是整型表达式, printf("haha\n"); //break;表示跳出,不继续(循环),而continue是跳过下面的代码,继续进行(后面学了循环,这个会继续循环) case 1: printf("xixi\n"); case 2: printf("hehe\n"); //....可以写n个这就是switch的好处,选择的次数多 //可以用default来表示输入其他的值后所需要执行的代码块,很好的解决了用户输入其他值而不产生反应的缺陷。这里的default可以在switch语句中的任何位置,不过一般放在最后考虑。 } return 0; }

1.3.1循环结构(while)

while循环的使用

#include<stdio.h> int main () { while //(表达式) //语句;多个语句时需要大括号 printf("haha\n");//条件符合后会打印出循环haha return 0; }

它与if有点相似,都可以时条件表达式,但是while可以循环输出;while循环的执行流程图

这里的continue如果条件符合使用后他不会往下运行,但是也不会退出循环而是继续循环,而break,直接退出循环,不再循环。

1.3.2循环结构(for)

for循环在循环语句中是使用的最多的,for的用法,

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

表达式1一般为定义初始化;表达式2一般为判断;表达式3一般为调整;一般for循环里面也可以嵌套for循环,

#include<stdio.h> int main() { int a = 0; int b = 0; for (a = 1; a < 10; a++) { for (b = 1; b < 10; b++) { printf("%d * %d = %d\n", a, b , b * a); } } return 0; }

for循环的好处就是能够将初始化和条件与调整写在一起,条理更加清晰可见,相较于while,do...while来说他们的初始化、条件判断以及调整都较分散。如图为for循环流程图。

1.3.3循环结构(do...while)

do..while虽然说与while用法是一样的,基本上2个使用哪一个都可以,但是还有一种情况就是,如果必须一个代码块循环一次的话,那就必须使用do...while,while循环需要先符合条件才能进入循环体,而do...while是先进入,后判断,判断不符合才不继续下去。

do...while用法

#include<stdio.h> int main() { do { ..... }while(表达式);//这里必须为分号 return 0 ; }

二、个人总结


(一)if

1.if..else语句只有满足其中一个条件,就不会判断其他的else语句的(因为个人之前用过else if来判断另一个变量的条件-.-)

2.else语句只会与最近的if对应。

#include<stdio.h> int main() { int a = 0; scanf("%d", &a);//假设这里输入7,结果不会打印haha,而是打印hehe,因为else只与最近的if连用 if(a == 5) if(a == 6) printf("haha\n"); else printf("hehe\n"); return 0; }

3.养成写一个if语句或者else语句就加一个{},因为if等语句如果不加大括号,就只能执行一行,当然养成这个习惯也能更好的阅读代码,条理更清晰。

(二)switch

1.一定要考虑是否要加break或者continue,有时也不用加break,看自己需求,比如表示休息日和工作日时。

2.在switch中break和continue,在这里的switch中continue的使用必须要switch语句在循环体内,才能使用,continue不会执行下面的代码块,将直接进行下一个迭代(循环)而break是直接退出switch语句。

3.一般与switch一起使用的case加整型表达式还有冒号一定是冒号,而不是分号,与switch的也有default,这个用于处理其他不同整型表达式的情况。

4.switch是支持嵌入的。

(三)循环

1.break和continue在循环也各不相同,break是直接退出循环,进行下一个迭代,而continue是不继续执行下面的代码块,直接退出循环体,然后再进入循环,(我一开始学,也认为continue嘛,是持续的意思,就是往下走,直到认识了continue的语法后,才发现是继续循环,而不是继续下面的代码块)

2.while语句的表达式的执行比循环的执行总是多一次

3.do..while中的循环至少循环一次,而且它表达式执行次数与循环次数是一样的。

4.一般for循环()括号内可以什么都不加,但是必须要有分号。

5.一般for、while和do..while一起连用,一起解决复杂问题。

6.对于do...while(表达式)后面必须使用;这个分号,语法格式。(易忘记)

7.对于for循环后面走出来的变量,是继续继承调整后的数值的。

#include<stdio.h> { for(int i = 0; i < 10; i++) { printf("%d ", i); } printf("%d\n", i);//最后会打印0—9的数,但是最后还会打印一次9。 return 0; }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询