认识C语言的分支与循环
C语言中规定有三大结构,分别为
- 顺序结构
- 选择结构
- 循环结构
所谓顺序结构指的就是我们利用编译器写出的C语言代码按照从上往下的顺序执行,直到程序走完。今天我们着重学习一下C语言中的另外两个结构。
选择结构
选择结构由选择选择语句来执行,常见的选择语句有if语句、if else语句、if else if else语句、switch语句。
if语句
#include<stdio.h>
int main()
{
if (条件表达式)
{
//执行语句;
}
else if (条件表达式)
{
//执行语句;
}
{
//执行语句;
}
return 0;
}
代码解析:
当if中的条件满足时执行if下面的语句,如果条件不满足则会来判断下面else if中的条件是否满足,如果满足则执行,不满足则继续向下寻找有满足条件的语句,如果全都不满足,则执行最后else语句中的内容。被执行的语句可以是一条也可以是多条,执行多条语句时,必须使用{}来包括所有需要执行的语句,否则只执行第一条语句。
switch语句
#include<stdio.h>
int main()
{
switch (条件表达式)
{
case 值:
执行语句;
break;
case 值:
执行语句;
break;
default:
执行语句;
}
return 0;
}
代码解析:
switch是除去if语句外另一种分支语句,它⽤于判断条件有多个结果的情况。它把多重的 else if 改成更易⽤、可读性更好的形式。当case后面的值满足最上方switch中的条件表达式时,直接执行case下方的语句,当所有case都不符合条件时执行dafault中的内容,但有一点需要注意,break关键字不能丢,break是跳出的意思,当某个case里的值符合条件时,执行完语句,遇见break直接跳出switch语句,不在执行下面的case语句。否则代码会继续玩下执⾏,有可能执⾏其他 case语句中的代码,直到遇到 break 语句或者 switch 语句结束。
循环结构
循环结构则是由循环语句执行,一般常见的循环语句有while语句、do while语句、for语句。
while语句
//打印0 - 100的数字
#include<stdio.h>
int main()
{
int i = 0; //表达式1
while (i <= 100) {//表达式2
printf("%d ", i);//执行语句
i++;//表达式3
}
return 0;
}
代码解析:
首先我们来把while循环分为三大板块,第一大板块是上图代码达式1中循环变量的初始化,第二大板块是表达式2中循环结束条件的判断,第三大板块则是表达式3中循环变量的调整。当循环变量的值满足表达式2中的条件时执行循环中写入的条件,接着向下执行表达式3中的变量调整,当调整后的循环变量仍满足表达式2中的条件时继续执行一次,接着比较,接着执行,如此往复,直到当循环变量不满足表达式内容时,跳出循环,程序执行完毕。注:表达式3中循环变量的调整,既可以写在执行语句的前面,也可以写在其后面,写的位置不同,代码执行的循序会改变,程序的结果也会发生改变,当然具体放在前后,根据实际情况来定。下面放上一张流程图方便大家理解,执行过程
流程图
do whlie语句
//打印0 - 100的数字
#include<stdio.h>
int main()
{
int i = 0; //表达式1
do
{
printf("%d ", i);
i++;//表达式3
} while (i <= 100);//表达式2
return 0;
}
代码解析:
while 循环是先判断,条件如果满⾜就进⼊循环,执⾏循环语句,如果不满⾜就跳出循环。⽽ do while 循环则是经过表达式1的初始化后,直接进⼊循环体,执⾏循环语句,然后再通过表达式3来调整循变量来看是否满足 while 后的表达式2,如果表达式满足,就会进⾏下⼀次循环,如果表达式不满足,则不再继续循环。与while循环唯一的区别就是第一次循环执行语句不管满不满足表达式2中的条件,至少都会执行一遍。
流程图
for循环
#include <stdio.h>
int main()
{
for (变量的初始化;条件表达式;变量的调整)
{
//执行语句;
}
return 0;
}
代码解析:
⾸先执⾏ 表达式1 初始化循环变量,接下来就是执⾏ 表达式2 的条件表达式部分, 表达式2 的结果如果==0,即条件不满足,则循环结束; 表达式2 的结果如果!=0条件满足则执⾏循环语句,循环语句执⾏完后,再去执⾏表 达式3 ,调整循环变量,然后再去 表达式2 的地⽅判断条件是否满足,表达式2 的结果是否为0,来决定循环是否继续。for 和 while 在实现循环的过程中都有初始化、判断、调整这三个部分,相比while循环,for循环在代码结构上表现的更为紧凑,代码简洁,可读性更高, 便于代码的维护,但在代码较多的时while 循环的三个部分就⽐较分散,所以从形式上 for 循环要更优⼀些。
流程图
continue和break关键字
break 的作⽤是⽤于跳出整个循环,只要 break 被执⾏,直接就会跳出整个循环语句,循环终止,不在继续往后执⾏。
continue 的作⽤是跳过本次循环, 当continue 执行后,当遇到本次特定条件的循环时将不执行,而去执行后面的循环语句,直到循环结束。