C语言是结构化的程序设计语言,这里的结构指的是顺序结构、选择结构、循环结构
顺序结构:顺序结构就是按照书写的先后顺序从前到后执行的结构。
选择结构:选择结构也称
分支结构,就是让程序“拐弯”,有选择性的执行代码;换句话说,可以跳过没用的代码,只执行有用的代码。
1.if语句
2.switch语句
循环结构:循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。它由循环体中的条件,判断继续执行某个功能还是退出循环。
1.for循环
2.while循环
3.do while循环
一.分支结构
1.1 if语句
if 语句的语法形式如下:
1. if ( 表达式 )
2. 语句
表达式成立(为真),则语句执行,表达式不成李(为假),则语句不执行。
在C语言中,0为假,非0表示真
以下为if语句执行流程
![](https://img-blog.csdnimg.cn/direct/aeab34cf3e9b4a37bcc9f0619f9b5e1e.png)
1.2 else语句
if...else...
语法形式如下:
1. if ( 表达式 )
2. 语句1
3. else
4. 语句2
1.3 分支中包含多条语句
默认在
if
和 else 语句中默认都只控制⼀条语句
如果我们要if语句同时控制2条语句,那就要使用
{}
将代码括起来
1.4 嵌套if
在
if else
语句中,
else
可以与另⼀个
if
语句连用,构成多重判断
1.5 悬空else问题
如果有多个
if
和
else
,可以记住这样⼀条规则:
else 总是跟最接近的 if
匹配。
2. switch 语句
switch
语句是⼀种特殊形式的
if...else
结构,用于判断条件有多个结果的情况。它把多重
的
else if
改成更易用、可读性更好的形式。
1. switch (expression)
2. {
3. case value1: statement
4. case value2: statement
5. default: statement
6. }
上面代码中,根据表达式
expression
不同的值,执⾏相应的
case
分支。如果找不到对应的值,
就执行
default
分支。
注:
•
switch
后的
expression
必须是整型表达式
•
case
后的值,必须是整形常量表达式
•
case
和后边的数字之间必须有空格
•
每⼀个
case
语句中的代码执⾏完成后,需要加上
break
,才能跳出这个switch语句。
2.1 switch语句中的break
switch
语句是分支效果的,只有在
switch
语句中使⽤
break
才能在跳出
switch
语
句,如果某⼀个
case
语句的后边没有
break
语句,代码会继续往下执行,有可能执行其他
case
语句中的代码,直到遇到
break
语句或者
switch
语句结束。
1. switch
语句中
break
语句是非常重要的,能实现真正的分支效果。
2. 当然,
break 也不是每个 case
语句都得有,这就得根据实际情况来看了。
2.2 switch语句中的default
在使用
switch
语句的时候,我们经常可能遇到⼀种情况,比如
switch 后的表达式中的值无法匹
配代码中的 case
语句的时候,这时候要不就不做处理,要不就得在
switch
语句中加入
default 句子
。
1. switch (expression)
2. {
3. case value1: statement
4. case value2: statement
5. default: statement
6. }
switch
后边的
expression
的结果不是
value1
,也不是
value2
的时候,就会执行
default 句子
。
2.3 switch语句中的case和default的顺序问题
在
switch
语句中
case 句子
和
default 句子
有要求顺序吗?
default
只能放在最后吗?
其实,在
switch 语句中 case 语句和 default
语句是没有顺序要求的,只要你的顺序是满足实
际需求的就可以。
不过我们通常是把
default 句子
放在最后处理的。
二.循环结构
for循环
2.1 语法形式
for
循环是三种循环中使用最多的,
for
循环的语法形式如下:
1 . for(表达式1; 表达式2; 表达式3)
//如果循环体想包含更多的语句,可以加上大括号
2. 表达式1 用于循环变量的初始化
表达式2 用于循环结束条件的判断
表达式3 用于循环变量的调整
2.2 for循环的执行流程
![](https://img-blog.csdnimg.cn/direct/8eca1b9d46174f9bad1e11b90c9a3008.png)
首先执行表达式
1
初始化循环变量,接下来就是执行表达式
2
的判断部分, 表达式
2
的结果如果
==0,则循环结束; 表达式
2
的结果如果 !=0 则执行循环语句,循环语句执行完后,再去执行表 达式 3 ,调整循环变量,然后再去表达式
2
的地方执行判断, 表达式
2
的结果是否为0,决定循环是否继续。
整个循环的过程中,表达式1初始化部分只被执行1次,剩下的就是表达式2、循环语句、表达式3在循环。
2.3 while循环和for循环的对比
for
和
while
在实现循环的过程中都有初始化、判断、调整这三个部分,但是
for 循环的三个部
分非常集中,便于代码的维护,而如果代码较多的时候
while
循环的三个部分就比较分散,所以从形式上 for
循环要更优一些。
while循环
C语言提供了3种循环语句,
while
就是其中⼀种,接下来就介绍⼀下
while
语句。
while
语句的语法结构和
if
语句非常相似。
2.4 if 和 while的对比
1. if(表达式)
2. 语句;
3.
4.
5. while(表达式)
6. 语句;
//如果循环体想包含更多的语句,可以加上大括号
区别:while语句是可以实现循环效果的。
2.5 while语句的执行流程
![](https://img-blog.csdnimg.cn/direct/148e36324c8040a59d907a2b4395eb82.png)
首先上来就是执行判断表达式,表达式的值为0,循环直接结束;表达式的值不为0,则执行循环语
句,语句执行完后再继续判断,是否进行下⼀次判断。
2.6 do-while 循环
2.7 语法形式
在循环语句中
do while
语句的使用最少,它的语法如下:
1. do
2. 语句;
3. while(表达式);
while
和
for
这两种循环都是先判断,条件如果满足就进入循环,执行循环语句,如果不满足就跳
出循环;
而
do while
循环则是先直接进入循环体,执行循环语句,然后再执行
while
后的判断表达式,表
达式为真,就会进行下⼀次,表达式为假,则不再继续循环。
2.8 do while循环的执行流程
![](https://img-blog.csdnimg.cn/direct/b7ce142de1a6423893289aa7ffac8b81.png)
在
do while
循环中先执行图上的“语句”,执行完语句,再去执行“判断表达式”,判断表达式的
结果是!=0,则继续循环,执行循环语句;判断表达式的结果==0,则循环结束。
所以在
do while
语句中循环体是至少执行⼀次,这是
do while
循环比较特殊的地方。
2.9. break和continue语句
在循环执行的过程中,如果某些状况发⽣的时候,需要提前终止循环,这是非常常见的现象。C语言中提供了 break
和
continue
两个关键字,就是应该到循环中的。
•
break
的作用是用于永久的终止循环,只要
break
被执行,直接就会跳出循环,继续往后执
行。
•
continue
的作用是跳过本次循环
continue
后边的代码,在
for
循环和
while
循环中有所
差异的。