循环语句包括:
·while循环
·for循环
·do while循环
一、while循环
1.1while循环的语法
首先,我们先来对比一下while循环与if判断语句。
相同点:当( )内的为真时,两者都会执行{ }内的语句。
不同点:当两者无嵌套结构时,if语句会执行一次;当条件为真时,while语句会一直执行。
1.2 while语句中的break和continue
1.2.1 break介绍
我们可以看到上面的代码,当i的值为5时,出现break,跳出循环,所以屏幕上只会打印出“1 2 3 4”
1.2.2 continue介绍
continue在while循环中的作用就是:
continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。解析:当我们把break换成continue后,当i的值为5时,会跳过continue后的步骤,直接进入while判断,也就是说这里的i并没有变成 i+1,下次进来的 i 的值仍为5,这就导致了一个死循环,当我们在编译器中运行这段代码时,可以看到屏幕打印出了“1 2 3 4”,可是光标仍在闪烁,这就说明程序仍在进行,但是printf已经被continue跳过。
当我们把 i=i+1 放到continue上面执行时,
我们会看到最大的区别就是没有出现死循环(当然,打印结果也和之前有所差异)。
二、for循环
2.1 for循环的语法
2.2对比for循环和while循环
可以看出for循环用一行代码就可以解决while循环中的三行代码,使代码看起来更加简洁
当然对 i 的初始化也放在表达式1中,写成 for(int i=1;i<=10;i++)
那么什么时候用for循环,什么时候用while循环呢?
1.当循环次数已知时,我们可以用for循环,使代码看起来更加简洁
2.当循环次数未知,循环终止条件已知时,就可以用while循环。同样,我们可以用while写一个死循环while(1),当满足条件时用break跳出循环。
2.3 for语句中的break和continue
在for循环中也可以出现break和continue,他们的意义和在while循环中是一样的。
2.4 注意
我们来看代码2和代码3,它们的差别就是代码3的for循环内部并没有重新初始化 i 和 j
运行结果则是代码2打印了100个hehe;代码3打印了10个hehe。
代码3的执行过程:
由此可见当 i=0 时, j 的值已经遍历了0-10,而 i 的值继续改变时,因为没有给j赋初始值, j 的值一直停留在了10,也就不再满足打印的条件。
三、do while循环
3.1 do while循环的语法
3.2 do while循环的特点
如上,我们写了一个 i 无法满足while条件内的循环,但其还是会先执行一次再进行表达式的真假判断
3.3 do while语句中的break和continue
在do while循环中也可以出现break和continue,他们的意义和在while循环中是一样的。