一、引言
想必大家一定都听过C语言是一种结构化的程序语言,他是十分重要的,正如题目一样C语言最重要的语句就是分支语句和循环语句。可是为什么这样说呢?是因为百分之九十以上生活中的事情都是可以用它们来进行描述的。分支语句和循环语句有三种结构顺序分别是顺序结构、选择结构、循环结构。
1.顺序结构 :顾名思义就是按照事情的本身一步一步来,从头做到尾。
2.选择结构 :就是有选择性的去做满足要求的事情,就像大四毕业了以后考研或者工作
3.循环结构 :就是给你一个条件然后当满足条件的时候就继续重复的做这个事,直到打破这个条件。
生活中每个事情都可以用以上其中的一个语句或者多个语句来表达并实现自己的想法,首先我们来了解一下什么是C语言中的语句
C语句可分为以下五类:
1. 表达式语句
2. 函数调用语句
3. 控制语句
4. 复合语句
5. 空语句
分支语句和循环语句 属于控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选择结构、循环结构),它们由特定的语句定义符组成,C语言有九种控制语句。可分成以下三类:
1. 条件判断语句也叫分支语句:if语句、switch语句。
2. 循环执行语句:do while语句、while语句、for语句。
3. 转向语句:break语句、goto语句、continue语句、return语句。
接下来我们来说说在C语言中他们的用途吧。
二、分支语句(选择结构)
if 语句
首先我们了解一下if的语法结构
如果表达式的结果为真,则语句执行
*在C语言中0表示假,非0表示真(这个很重要)
单分支如下
int main() { if(条件表达式) { 条件满足执行的语句; } else { 条件不满足执行的表达式 } return 0; }
除了单分支还可以是多分支
int main() { if(条件表达式1) { 条1件满足执行的语句; } else if(条件表达式2) { 条件2满足执行的表达式; } else if(条件表达式3) { 条件3满足执行的表达式; } ...... else (条件表达式) { 条件都不满足时执行的表达式; } return 0; }
这里的一对 { } 就是一个代码块,适当的使用{}可以使代码的逻辑更加清楚。
switch语句
switch语句也是一种分支语句,常常用于多分支的情况。
比如:
输入1,输出星期一
输入2,输出星期二
输入3,输出星期三
输入4,输出星期四
输入5,输出星期五
输入6,输出星期六
输入7,输出星期日
那我没写成 if...else if ...else if 的形式太复杂,那我们就得有不一样的语法形式。
这就是switch 语句
switch(整型表达式) { 语句项; }
而语句项是什么呢?
//是一些case语句: //如下: case 整形常量表达式: 语句;
在switch语句中的 break
在switch语句中,我们没办法直接实现分支,搭配break使用才能实现真正的分支。
比如:
#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; } return 0; }
default子句
如果表达的值与所有的case标签的值都不匹配怎么办?
其实也没什么,结构就是所有的语句都被跳过而已。
程序并不会终止,也不会报错,因为这种情况在C中并不认为是个错误。
但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢?
你可以在语句列表中增加一条default子句,把下面的标签
default:
写在任何一个 case 标签可以出现的位置。当 switch 表达式的值并不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行。所以,每个switch语句中只能出现一条default子句。但是它可以出现在语句列表的任何位置,而且语句流会像执行一个case标签一样执行default子句。
在每个 switch 语句中都放一条default子句是个好习惯,甚至可以在后边再加一个 break 。