前言
今天我们来了解C语言最基础的也是最常用的语句分支语句和循环语句
分支语句 if switch 循环语句 while for do while
一、什么是语句?
C语言可分为以下五类: 1,表达式语句 2,函数调用语句 3,控制语句 4,复合语句 5,空语句 我们今天了解的就是控制语句。 控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选择结构、循环结构),它们由特定的语句定义符组成,C语言有九种控制语句。 可以分为以下的三类: 1.条件判断语句也叫分支语句:if语句、switch语句; 2. 循环执行语句:do while语句、while语句、for语句; 3. 转向语句:break语句、goto语句、continue语句、return语句。
二、分支语句(选择结构)
1.if语句
if语句的语法结构:
if(表达式)
语句;
if(表达式)
语句1;
else
语句2;
if(表达式1)
语句1;
else if(表达式2)
语句2;
else
语句3;
演示代码
#include <stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if(age<18)
{
printf("未成年\n");
}
else
{
printf("成年\n");
}
return 0;
}
#include <stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if(age<18)
{
printf("少年\n");
}
else if(age>=18 && age<30)
{
printf("青年\n");
}
else if(age>=30 && age<50)
{
printf("中年\n");
}
else if(age>=50 && age<80)
{
printf("老年\n");
}
else
{
printf("寿星\n");
}
return 0;
}
解释一下: 如果表达式结果为真,则语句执行。 那C语言是如何判断真假的呢?
0表示假,非0表示真。
2.switch语句
switch语句也是一种分支语句。 常常用于多分支的情况。 比如:
输入1,输出星期一 输入2,输出星期二 输入3,输出星期三 输入4,输出星期四 输入5,输出星期五 输入6,输出星期六 输入7,输出星期日
如果写成if…else… if…else…的形式太复杂,那就得不一样的语法形式。
就得运用到switch语句。
switch(整型表达式)
{
语句项;
}
在switch语句中,我们没办法直接实现分支,搭配break使用才能实现真正的分支。 示例:
#include <stdio.h>
int main()
{
int day = 0;
switch(day)
{
case 1:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
case 7:
printf("星期天\n");
break;
}
return 0;
}
如果我们的要求变了:
- 输入1-5,输出的是“weekday”;
- 输入6-7,输出“weekend”
那我们的代码就变成了这个样子:
#include <stdio.h>
int main()
{
int day = 0;
switch(day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("weekday\n");
break;
case 6:
case 7:
printf("weekend\n");
break;
}
return 0;
}
break语句的实际效果就是把语句列表划分为不同的分支。
三、循环语句
while for do while
1.while循环
我们发现生活中很多的实际的例子是:同一件事情我们需要完成很多次。那我们怎么做呢? C语言中给我们引入了: while 语句,可以实现循环。
while(表达式)
循环语句;
while语句执行的流程:
1.1while语句中的break和continue
break在while循环中的作用:
在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。 所以:while中的break是用于永久终止循环的。
break 示例:
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
if(i == 5)
break;
printf("%d ", i);
i = i+1;
}
return 0;
}
输出结果:1 2 3 4
continue在while循环中的作用就是:
continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行, 而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。
continue 示例:
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
i = i+1;
if(i == 5)
continue;
printf("%d ", i);
}
return 0;
}
输出结果:1 2 3 4 6 7 8 9 10
2.for循环
for(表达式1; 表达式2; 表达式3)
循环语句;
表达式1 表达式1为初始化部分,用于初始化循环变量的。 表达式2 表达式2为条件判断部分,用于判断循环时候终止。 表达式3 表达式3为调整部分,用于循环条件的调整。
for循环执行流程图
2.1for语句中的break和continue
我们发现在for循环中也可以出现break和continue,他们的意义和在while循环中是一样的。 但是还是有些差异:
#include <stdio.h>
int main()
{
int i = 0;
for(i=1; i<=10; i++)
{
if(i == 5)
break;
printf("%d ",i);
}
return 0;
}
#include <stdio.h>
int main()
{
int i = 0;
for(i=1; i<=10; i++)
{
if(i == 5)
continue;
printf("%d ",i);
}
return 0;
}
2.1for语句中的循环控制变量
建议:
- 不可在for 循环体内修改循环变量,防止 for 循环失去控制。
- 建议for语句的循环控制变量的取值采用“前闭后开区间”写法。
int i = 0;
for(i=0; i<10; i++)
{}
for(i=0; i<=9; i++)
{}
3.do…while()循环
do
循环语句;
while(表达式);
do…while()循环执行流程图
3.3 do语句的特点
循环至少执行一次,使用的场景有限,所以不是经常使用。
3.4 do while循环中的break和continue
示例:
#include <stdio.h>
int main()
{
int i = 1;
do
{
if(5 == i)
break;
printf("%d ", i);
i=i+1;
}while(i<=10);
return 0;
}
#include <stdio.h>
int main()
{
int i = 1;
do
{
if(5 == i)
continue;
printf("%d ", i);
i=i+1;
}while(i<=10);
return 0;
}
总结
以上便是分支语句和循环语句的全部内容,如果有不对之处,请大家指出来一起讨论交流.
|