目录:
一.if语句
二.switch语句
三.while语句
四.do-while语句
五.for语句
六.流程转向语句
正文:
一.if语句
在C语言中,if语句有三种形式:单分支if语句、双分支if语句、多分支if语句。
1.单分支if语句
(1)语法格式: if(表达式) 语句;
(2)执行流程:
①计算表达式的值。
②如果表达式的值为真,则执行其后的语句。
③如果表达式的值为假,不执行该语句,直接退出选择结构。
单分支if语句的执行流程如下:
2.双分支if语句
(1)语法格式:
if(表达式)
语句 1;
else
语句 2;
(2)执行流程:
①计算表达式的值。
②如果表达式的值为真,则执行语句 1,然后退出选择结构。
③如果表达式的值为假,则执行语句 2,然后退出选择结构。
双分支if语句的执行流程如下:
3.多分支if语句
(1)语法格式:
if(表达式 1)
语句 1;
else if(表达式 2)
语句 2;
else if(表达式 3)
语句 3;
...
else if (表达式 m)
语句 m;
else
语句 n;
(2)执行流程:
依次判断表达式的值,当出现某个表达式为真时,则执行相应的语句。然后跳到if语句之外继续执行程序。如果表达式的值为假,则执行语句 n,然后退出选择结构,继续执行以后的程序。
多分支if语句的执行流程如下:
4.if语句的嵌套
在if语句的语句部分中包含一个或多个if语句时,则构成了if语句的嵌套。这种结构一般用于较为复杂的流程控制。
常见的if嵌套语句形式如下:
注意:为了避免if和else的二义性问题,C语言规定,else总是与它上面、距它最近并未匹配的if配对。
例如:
当运行以上代码的时侯,会发现运行的结果什么都没有,这是因为else配对的是第二个if。第一个if语句的表达式为假,不执行后面的语句,直接退出选择结构,因此什么都没输出。
二.switch语句
1.语法格式:
switch(表达式)
{
case 常量表达式 1:语句 1;break;
case 常量表达式 2:语句 2;break;
...
case 常量表达式 n: 语句 n; break:
default: 语句n+1;
}
2.执行流程:
(1)计算switch后面的表达式的值,然后与每个case后面的常量表达式比较,当表达式的值与某个常量表达式相同时,则执行相应case后面的语句。
(2)执行完case后的语句,如果case后面有break语句,则直接跳出switch控制结构;如果case后面没有break语句,则继续执行后面case的语句,直到遇到break语句或者switch执行完。
(3)当switch后面表达式的值与所有case后的常量表达式都不等时,则执行default后的语句,然后退出switch语句。
switch语句的流程图如下:
例如:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
switch (n)
{
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("输入错误\n");
}
return 0;
}
注意:
①表达式的数据类型可以是整数类型、字符类型或枚举类型,不可以是实型。
②关键字default是可选项,可用可无,且default的位置是任意的。