C 语言是一种结构化的设计语句,它主要有:顺序结构,选择结构,循环结构。本文将会介绍:if 语句, switch语句, while,for,do while循环语句。
1.1:if语句是一种条件语句,它表示为只要条件成立就执行下边的分支。(图解如下)
![](https://i-blog.csdnimg.cn/blog_migrate/e24aeef9423819825bf204cf236a9985.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0effc87559c8930d3c107839e53d1b0e.png)
而当条件表达式为0的时候,如果下方有else语句就将被执行(图解如下)
![](https://i-blog.csdnimg.cn/blog_migrate/bfc50730bd44772059bc51125b3e4cae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ef1b75d55eba15d7d7bf6845d3d4b0fb.png)
实践代码如下:
![](https://i-blog.csdnimg.cn/blog_migrate/b7e083a98e0a900902d8fd850593db60.png)
![](https://i-blog.csdnimg.cn/blog_migrate/68429e8853299d318da243fcedacba90.png)
if语句也可以实行嵌套,如:多个 if 在 if 的语句中,或多个 if 嵌套在 else 语句中。(图解如下)
![](https://i-blog.csdnimg.cn/blog_migrate/43fdd21e763a0e2dfd82316e32bb8ab2.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3c0a080589f0a55113c64d838decf8ab.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b28847c5c7e513225d49847efee188a3.png)
![](https://i-blog.csdnimg.cn/blog_migrate/18275bec0f99276cc743ea45c6e53b94.png)
一般的多重语句的 if 嵌套格式用 else if ,用来表示有多重选项,而 else if 后面跟小括号 用来表示条件语句,此时的 else 语句在 if 与 else if 都不执行时才会执行。(图解如下)
![](https://i-blog.csdnimg.cn/blog_migrate/e99438239d71f11ab9962ac8a9c0a438.png)
![](https://i-blog.csdnimg.cn/blog_migrate/08620e706a916e2c9e37819fbb25ec58.png)
注:else 总是和他最近的 if 进行匹配。
1.2 switch语句:
switch 语句就像开关一样当条件表达式成立时,它便执行下边的分支语句,如:当它条件为大于0的时,它便执行相对应的case x,当执行完case x时便会一直向下执行,直到遇见break。诺没有对应case x,便会执行default语句。诺没有default便什么都不会执行。
图解如下:
![](https://i-blog.csdnimg.cn/blog_migrate/5ea1a17f6d54049389a9357e44a79b61.png)
![](https://i-blog.csdnimg.cn/blog_migrate/52eb4c895d4e9b8f26a8ebe233a03ba9.png)
![](https://i-blog.csdnimg.cn/blog_migrate/6d4fdd5def67598cab2c11aab27069fa.png)
![](https://i-blog.csdnimg.cn/blog_migrate/6e5ad8c463b2f4c3c64df1a794fb8635.png)
(switch语句的嵌套和上述类似,但注意遇到break只跳出一个switch)
![](https://i-blog.csdnimg.cn/blog_migrate/1c2ac946a4dfd7f1bd89ed18514f361f.png)
下面便进入循环语句:
1:
语法形式为 while().
while 循环⾸先上来就是执⾏判断表达式,表达式的值为0,循环直接结束;表达式的值不为0,则执⾏循环语句,语句执⾏完后再继续判断,是否进⾏下⼀次判断。
它与if 语句的形式特别相似,我们可以来对比一下:
![](https://i-blog.csdnimg.cn/blog_migrate/94da85c8dc4186165a85c971bea865cf.png)
都是当后面的条件表达式满足时执行下列语句,不同的是if语句只执行一次但是while会一直执行下去直到条件不再满足或者在语句中碰到break。图解如下:
![](https://i-blog.csdnimg.cn/blog_migrate/e3ee98209f3a17866f8f81f1fe63cc57.png)
如我们要打印从一加到一百的值:
![](https://i-blog.csdnimg.cn/blog_migrate/f6f239cc0d6f4311f675b56089007ee0.png)
练习
输⼊⼀个正的整数,逆序打印这个整数的每⼀位
例如:
输⼊:1234,输出:4 3 2 1
输⼊:521,输出:1 2 5
1:要想得到n的最低位,可以使⽤n%10的运算,得到的余数就是最低位,如:1234%10得到4
2
:
要想去掉n的最低位,找出倒数第⼆位,则使⽤
n=n/10
操作就可以去掉最低位的,如:
n=1234/10得到123,123相较于1234就去掉了最低位,123%10就得到倒数第⼆位3。
3
.
循环1和2两个步骤,在n变成0之前,就能到所有的位
2.
for 循环的语法形式为 for(表达式1; 表达式; 表达式3)
表达式1:循环变量的初始化。
表达式2:循环条件的判定。
表达式3:循环变量的调整。
首先执行 表达式1 初始化循环变量,接下来就是执行 表达式2 的判断部分, 表达式2 的结果如果
==0,则循环结束; 表达式2 的结果如果!=0则执⾏循环语句,循环语句执行完后,再去执行表 达式
3 ,调整循环变量,然后再去 表达式2 的地⽅执行判断, 表达式2 的结果是否为0,决定循环是否继
续。
整个循环的过程中,表达式1初始化部分只被执行1次,剩下的就是表达式2、循环语句、表达式3在循
环。
图解如下:
诺用for 循环打印从1加到一百,代码为:
![](https://i-blog.csdnimg.cn/blog_migrate/f826b4910f761745693097375819e1ee.png)
注意:如并不需要表达式可以直接用分号过度
如:for( ; ; ;)
下面我们做while 与 for 之间的对比:
![](https://i-blog.csdnimg.cn/blog_migrate/7ee0add385cd2f9f030b1f889be3733d.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a2d78cf1523ccad49f4829cab9fb6d8f.png)
for
和
while
在实现循环的过程中都有初始化、判断、调整这三个部分,但是
for
循环的三个部 分非常集中,便于代码的维护,而如果代码较多的时候 while
循环的三个部分就⽐较分散,所以从形式上 for
循环要更优⼀些。
3:
do while循环的语法形式为
do
语句
while()
while
和
for
这两种循环都是先判断,条件如果满足就进⼊循环,执行循环语句,如果不满足就跳 出循环;
而
do while
循环则是先直接进⼊循环体,执行循环语句,然后再执⾏
while
后的判断表达式,表 达式为真,就会进行下⼀次,表达式为假,则不再继续循环。
在我们循环语句中 while 与 for 是比较常用的而 do while 用的较少。图解如下:
在
do while
循环中先执行图上的“语句”,执行完语句,在去执行“判断表达式”,判断表达式的 结果是!=0,则继续循环,执⾏循环语句;判断表达式的结果==0,则循环结束。
所以在
do while
语句中循环体是至少执行⼀次的,这是
do while
循环比较特殊的地方。
诺用do while 循环写出从一加到一百:
zhi
在循环执行的过程中,如果某些状况发生的时候,需要提前终⽌循环,这是⾮常常⻅的现象。C语⾔中
提供了
break
和
continue
两个关键字,就是应⽤到循环中的。
•
break
的作用是用于永久的终止循环,只要
break
被执行,直接就会跳出循环,继续往后执
行。
•
continue
的作用是跳过本次循环
continue
后边的代码,在
for
循环和
while
循环中有所
差异的,因为
continue虽然 可以帮助我们跳过某⼀次循环
continue
后边的代码,直接
到循环的判断部分,进行下⼀次循环的判断,如果循环的调整是在
continue
后边的话,可能会造成
死循环。
可以自己把上述代码转换一下,自己体会体会。