一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第1天,点击查看活动详情。
引入
引入:什么是语句? C语句可分为以下五类:
- 表达式语句
- 函数调用语句
- 控制语句
- 复合语句
- 空语句
其中控制语句用于控制程序的执行流程,以实现程序的各种结构方式,它们由特定的语句定义符组成,C语言有九种控制语句。 可分成以下三类:
- 条件判断语句也叫分支语句:if语句、switch语句;
- 循环执行语句:do while语句、while语句、for语句;
- 转向语句:break语句、goto语句、continue语句、return语句。
1. 分支语句(选择结构)
1.1 if语句
格式:
#include <stdio.h>
int main()
{
if(表达式)//若表达式为真,则输入语句列表1内容。反之输入语句列表2内容
{
语句1;
}
else(表达式)
{
语句2;
}
return 0;
}
1.1.1 if语句中的else
else与最近的if配对(要注意编码格式,用好‘{}’把代码括起来),不能因为它跟谁缩进对齐就跟谁配对。
int main()
{
int a = 0;
int b = 2;
if (1 == a)//=赋值 ==判断相等。建议将常数写在左边,好排查问题
if (2 == b)
printf("hehe\n");
else
printf("haha\n");
//输出hehe
//看似else与第一个if对应,实则它与最近的未匹配的语句进行匹配。有特殊需求就用好{}。
return 0;
}
1.2 switch语句
switch语句也是一种分支语句。 常常用于多分支的情况。
格式:
switch(整型表达式)
{
语句项;
}
而语句项是什么呢 如下是一些case语句:
case 整形常量表达式:
语句;
运用
int main()
{
int day = 0;
scanf("%d", &day);//将数据给到day的地址加以保存
switch (day)//()里的day一定是整型
{
case 1://case 整型常量表达式
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.2.1 switch语句中的break
整合上述代码
输入1-5输出的是“weekday”
输入6-7输出“weekend
#include <stdio.h>
int main()
{
int day = 0;
scanf("%d", &day);
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语句的实际效果是把语句列表划分为不同的部分。
1.2.2 switch语句中的default子句
如果表达的值与所有的case标签的值都不匹配怎么办?
其实也没什么,结构就是所有的语句都被跳过而已。 程序并不会终止,也不会报错,因为这种情况在C中并不认为是个错误。 但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢? 你可以在语句列表中增加一条default子句,把下面的标签 default: 写在任何一个case标签可以出现的位置。 当 switch 表达式的值并不匹配所有 case 标签的值时,这个 default子句后面的语句就会执行。 所以,每个switch语句中只能出现一条default子句。 但是它可以出现在语句列表的任何位置,而且语句流会像执行一个case标签一样执行default子句。
分支语句是很简单的语句,也是很多程序的基础,我们一开始就穿插示例,是为了让大家不单单理解概念,还能学以致用,模仿着写出一些程序。