目录
一、什么是语句
二、分支语句
2.1 if语句
2.2 switch语句
三、循环语句
3.1 while循环
3.2 for循环
3.3 do...while循环
一、什么是语句
C语言语句有五类:表达式语句、函数调用语句、控制语句、复合语句、空语句。
控制语句用于控制程序的执行流程,来实现程序的各种结构方式。C语言有三种结构:顺序结构、选择结构、循环结构,有九种控制语句,可以分为三类:条件判断语句(分支语句):if语句和switch语句;循环语句:do while语句、while语句和for语句;转向语句:break语句、goto语句、continue语句和return语句。
二、分支语句
2.1 if语句
if语句的语法结构
if(表达式) //表达式为真,则执行语句,C语言中,0为假,非0为真
{
语句;
}
if(表达式)
{
语句;
}
else //else和它离的最近的if匹配
{
语句;
}
//多分支
if(表达式)
{
语句;
}
else if(表达式)
{
语句;
}
else
{
语句;
}
示例
#include <stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if(age<18)
{
printf("未成年\n");
}
}
#include <stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if(age<18)
{
printf("未成年\n");
}
else
{
printf("成年\n");
}
}
#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");
}
}
2.2 switch语句
switch也是一种分支语句,常用于多分支情况。
比如出入一个数字,输出对应的星期
switch语句
switch(表达式)
{
语句项;
}
语句项
case 整形常量表达式:
语句;
在switch语句中,我们没办法直接实现分支,搭配break使用才能实现真正的分支。
示例
#include <stdio.h>
int main()
{
int day = 0;
switch(day)
{
case 1:
printf("星期一\n");
break; //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;
}
如果表达的值与所有的case标签的值都不匹配,可以使用default标签,当 switch 表达式的值并不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行,每个switch语句中只能出现一条default子句。
示例
#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;default:
printf("输入不合法\n");
break;
}
return 0;
}
三、循环语句
当一个操作要多次重复执行时,就使用循环。
3.1 while循环
while(表达式)
{
循环语句;}
示例:打印1-10的数字
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
printf("%d ", i);
i = i+1;
}
return 0;
}
while中的break
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
if(i == 5)
break; //在循环中遇到break,直接终止循环printf("%d ", i);
i = i+1;
}
return 0;
}
while中的continue
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
if(i == 5){
i = i+1;
//continue终止本次循环,直接跳转到while的判断部分,进行下一次循环的判断
continue;}
printf("%d ", i);
i = i+1;
}
return 0;
}
3.2 for循环
for(表达式1; 表达式2; 表达式3)
{循环语句;
}
表达式1初始化循环变量,表达式2条件判断,判断何时循环终止,表达式3调整循环条件。
示例 打印1-10的数字
#include <stdio.h>
int main()
{
int i = 0;
for(i=1; i<=10; i++)
{
printf("%d ", i);
}
return 0;
}
执行流程图
break和continue在for循环和在while循环中的作用相同。
3.3 do...while循环
do
{循环语句;
}
while(表达式);
执行流程图
特点:循环至少执行一次,使用场景有限,不经常使用。