文章目录
C语言语句包含了表达式语句、函数调用语句、控制语句、复合语句和空语句,而我们今天所讲的分支语句和循环语句就是隶属于 控制语句
控制语句用于控制程序的执行流程,以实现程序的各种结构方式。
C语言有九种控制语句,可分为以下三类:
- 条件判断语句也叫分支语句:if语句、switch语句
- 循环执行语句:do while语句、while语句、for语句
- 转向语句:break语句、goto语句、continue语句、return语句
一、分支语句
1. if语句
1.1 if单支语句
if(表达式)//表达式为真则执行下面的语句
语句;
那么表达式什么时候为真呢?C语言中0用来表示假,而非0表示真,什么意思呢,请看下图。
对比以上两中结果,可以看出,当表达式成立时则为真,执行if大括号里面的语句,不成立则为假,接下来我们再看一组。
从以上结果我们可以看出,当表达式结果为0时表示假,因此也就不会执行下面的语句,而当表达式结果为非0时表示真,执行下面语句.
1.2 if……else语句
if(表达式)//表达式为真则执行语句1
语句1;
else //表达式为假则执行语句2
语句2;
接下来我将用图解的形式来帮助我们理解
这时候可能有小伙伴就要疑惑了,如果我输入一个负整数又会输出什么呢?
从以上结果可以帮助我们更好得理解,C语言中0为假,非0为真.
1.3 if……else if(可多用)……if
if(表达式1) //表达式1为真时执行语句1,且跳过else if语句
语句1;
else if(表达式2) //表达式1为假且表达式2为真时,执行语句2
语句2;
……
else //以上表达式都为假时,执行语句3
语句3;
接下来我将通过图解的方式帮助大家理解.
从以上三种对比结果我们可以看出,即使我们输入0,它依旧会执行第二条语句。当其中的表达式满足时,那么编译器会自动跳过其他语句,直接到return 0.
这时候可能有些小伙伴要困惑了,那就再对比一组图片.
练习:判断一个数是否是奇数,是就打印
//判断奇偶数
int main()
{
int n = 0;
printf("请输入:");
scanf("%d", &n);
if (n % 2 == 0)
printf("%d是偶数\n", n);
else if (n % 2 == 1)
printf("%d是奇数\n", n);
else
printf("输入错误\n");
return 0;
}
2. switch语句
switch(整型表达式) //整型表达式包括int、long、char类型
{ case 整型常量表达式: //可多用
语句;
break; //跳出语句
default: //所有case都不满足时,执行该处代码
printf("……”);
break; //跳出语句
}
接下来我将用图解的方式帮助大家理解.
2.1 switch语句中的break
C语言中break就是用来打破循环和跳出switch语句的执行
当我们在以上代码的基础上加入break后
上面代码太长而且重复性太高,我们简单优化下.
二、循环语句
1. while循环语句
while(判断部分)
{
循环体;
}
判断部分成立则执行循环体中的语句,然后再返回至判断部分,若成立继续循环,直至判断部分不成立则跳过while循环语句
接下来我将用一段代码帮助大家理解。
对于上述代码,如果不加调整部分n–,则会陷入死循环.
当然while循环也可以和其他语句进行嵌套使用.
2. for循环语句
for(表达式1;表达式2;表达式3)
循环语句;
那么for循环又是如何执行的呢?
3. do……while循环
do
{
循环语句;
}while(判断部分);
do……while循环语句有一个特点,无论条件满足与否,上来就先执行一次循环语句,然后再判断,条件成立则继续循环,不成立则跳出循环。
从上图我们可以看出,即使判断部分的表达式为假,也会先输出循环语句后再去判断。
关于如何跳出循环语句,接下来我会用一篇文章专门去讲break和continue在各个语句中的使用。