在程序中基础的三种结构为顺序结构,选择结构(分支结构),循环结构,几乎所有日常可见的事均可分为这三种结构或者这三种结构的组合.今天,我们就来详细了解一下关于C语言分支和循环语句.
在正式介绍之前呢,先给大家提及一下C语言的控制语句:
C语言共有9种控制语句,可以分为3类:
1. 条件判断语句也叫分⽀语句:if语句、switch语句; 2. 循环执⾏语句:do while语句、while语句、for语句; 3. 转向语句:break语句、goto语句、continue语句、return语句。
1.分支
1.1 if
if语句的用法:
1.
if (表达式) {
语句;
}
2.
if (表达式) {
语句;
}
else {
语句;
}
3.
if (表达式) {
语句;
}
else if (表达式) {
语句;
}
else {
语句;
}
如果表达式为真,则进入分支,执行语句;否则,则执行下一个分支.
1.2 switch
switch语句的用法:
switch (表达式) {
case 常量1: 语句
case 常量2: 语句
default: 语句
}
需要注意的是 :这里的的表达式必须是常量表达式,case后跟的常量也必须是整形常量
用星期举例:
#include<stdio.h>
int main() {
int day;
scanf("%d", &day);
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;
default: printf("无该日期");
}
return 0;
}
我们定义的day是个整形变量,case后跟的1,2..7也是整形.
或许,有的朋友疑惑,为什么见到有人使用char类型也没有报错, 那是因为char类型转化值ASCII为整形,也可看作整形.
不知道各位朋友有没有发现代码中有点奇奇怪怪的东西呢,break.还记得之前提到的控制语句么.break的作用便是跳出循环.
大家可以想一下如果没有break的控制,最后的代码会是怎么样,下面可以给大家试一下.
#include<stdio.h>
int main() {
int day;
scanf("%d", &day);
switch (day) {
case 1:printf("星期一\n");
case 2:printf("星期二\n");
case 3:printf("星期三\n");
case 4:printf("星期四\n");
case 5:printf("星期五\n");
case 6:printf("星期六\n");
case 7:printf("星期日\n");
default: printf("无该日期");
}
return 0;
}
可以看到当输入1时,switch匹配到case 1,但是代码并没有停下来,反而继续执行之后的代码.由此比较大家是否可以进一步了解break的作用了呢.
2.循环
2.1 while
while语句的用法
while (表达式) {
语句;
}
只要表达式为真,那么while语句将一直执行.
2.2 do..while
do...while语句的用法
do {
语句;
} while (表达式);
与while不同的是,while是先进行表达式的判断在进行语句的执行
do...while则是先进行语句的执行在对表达式进行判断.
2.2 for
for语句的用法
for (表达式1;表达式2;表达式3) {
语句;
}
其中,表达式1进行的是对循环变量初始化,表达式2是判断,表达式3则是调整循环变量
在这个过程,首先进行的是表达式1:初始化循环变量,然后对表达式2进行判断,若为真则执行语句,在执行表达式3对循环变量进行调整,继而在对表达式2进行判断,如此循环往复.
好了,这一段对C语言分支与循环介绍就先告一段落,之后还会进行更为详细的补充.