目录
简介
- C语言的三大结构分为
- 顺序结构
- 选择/分支结构
- 循环结构
- 这三个结构的组合基本上可以描述生活中的所有轨迹
- C语言为实现这些运行结构提供了丰富的关键字
顺序结构
- 顺序结构顾名思义就是从上至下顺序执行的结构
- 它没有关键字,但是你能够在几乎所有地方看见顺序结构或者被嵌套的顺序结构
- 最简单的顺序结构甚至只需要一条语句
选择/分支结构
选择/分支语句可以改变顺序结构,让该顺序的结构产生不同的走向
它们的用法大概就是,如果我晚上饿了,我可以选择吃不吃泡面,但做完了选择以及我选择所进行的事情之后,我都会睡觉,当然我们也可以跳过睡觉直接起床作早饭,C语言是很自由的
if...else if...else
该分支的的基本语法
if (exp1) //满足exp1的情况
{
exp; //语句
}
else if (exp2) //不满足exp1但满足exp2的情况
{
exp; //语句
}
else //不符合以上条件
{
exp; //语句
}
- if 表示符合右侧括号内的条件时执行
- else if 表示如果该else if 语句之上的所有配对判断都不符合条件但该语句右侧的条件表达式符合条件时执行
- else 表示以上条件都不符合时执行,else在只有一个if可以匹配的情况下只能出现一次
- if系列语句的配对规则为与最近的可匹配语句匹配,并不总是与对齐的语句匹配,而且可以配对的语句并不一定总是对齐的
- 这些语句的作用范围总是只有一条语句,但是聪明的我们都知道一个叫做复合语句的语法,就是用大括号将很多的语句包含起来,这一系列的语句将被看作一条语句
- 分支语句支持嵌套
switch
该选择语句的基本语法
switch (nSValue)
{
case 常量1:
语句;
case 常量2:
语句;
...
...
case 常量3:
语句;
default:
语句;
}
switch语句中可以用几个关键字
- case 语句
- case 后面只能跟表达整型数值的常量
- default 语句
- 如 nSValue 的值不能够与case的任何值匹配,就执行该语句
- break 语句
- break 语句可以跳出分支,但它只能存在于 case 或 default 之后,如不跳出,则 switch 语句会沿着 nSValue 进入的行开始顺序执行直至遇到 break 语句
case 语句和 defalut 都可以在 switch 语句当中单独出现,它们的条件表达结束后都以冒号 ':' 结尾,自冒号开始至下一条 break、 case 或 default 语句出现之前结束,当然了,如果什么都遇不到,switch 语句就结束了,该语句的范围也就结束了
goto
该选择语句的基本语法
...;
...;
UseID:
...;
...;
goto UseID;
...;
- UseID为自定义标识符,goto到这个标识符代表程序的执行流程跳跃到了这个标识符的位置
- 这一部分的代码实现了一个死循环,代码永远跳不出去,如果我们结合if...else...语句就可以实现一个我们自己的循环语句了,我们也能够借用goto语句跳出多层循环,但goto语句很少会用到,如果应用不慎,会破坏代码的可读性,应尽量少的使用
循环结构
如果你需要完成同类的事情很多事,但你不想使用 goto 语句来实现,你可以选择使用循环语句来实现
C语言的循环语句有三种,分别是 while、do while、for
- while 循环的基础语法
-
while (value) //value表示一个值,它是使while循环下去的条件 { //循环体,这里可以写你需要循环做的事情 }
如果value永远不会改变,那么这个循环就永远不会结束
-
- do while 循环的基础语法
-
do { //循环体,do while 循环的特点是先进行循环体内的内容,再进行循环条件判定 } while (value); //value的作用与普通while循环内的一样
-
- for 循环的基础语法
-
for (初始化条件; 循环成立条件; 循环变化语句) { //循环体 }
-
初始化条件 - 循环开始时执行一次的语句就是初始化条件
-
循环成立条件 - 循环体开始执行时会判断是否开始循环的条件就是循环成立条件
-
循环变化条件 - 循环变化语句是循环体执行完毕后会执行的语句
-
结构嵌套
C语言的三大结构是支持嵌套的,你可以在任意结构内嵌套任意结构;
如果你在主函数内写了一个循环语句,循环语句内写了判断语句;那么你就是在一个顺序结构内书写了一个循环结构,而这个循环结构内部又书写了一个选择结构
或许你不曾注意到你写的这些代码的结构的复杂性,但它们的确都是这么反复嵌套在一起的
continue及break
- continue
- continue 语句用于结束当前循环体内容,直接进入到下一次循环,会执行循环每次都会执行的语句
- break
- break 语句可用于循环与 switch 语句中,它用于跳出当前 switch 或 循环 结构,它会直接结束当前的这两个结构,不会执行那些每次都会执行的语句
- 这两个语句都只能 作用于当前的这一段结构,所以遇上多重结构嵌套的时候需要直接跳出到最外层可以试着使用goto语句
引用
碎碎念
虽然C语言还有一些函数与递归相关,但我认为函数其实就是一大块顺序结构,递归也算是函数内的,所以看起来复杂的东西其实都是一点一点的基础拼凑的,但它们组合起来确实非常的有意思