一、什么是语句
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; }