C语言零基础入门—循环结构程序设计-2
任务:
三种循环的比较
循环的嵌套
break与continue的再次比较
1. 三种循环的比较
其实三种循环在我看来都是一样的,实在要说有什么不一样那就是:每一种循环中,可以人为设置的参数,属性的位置不同而已。
三种循环都要有:初始参数,循环终止条件,每一次循环后的处理。这三部分的内容。但是三种循环对他们放置的位置不同。
1.1 差异比较
for循环比较简洁,直接把这三个信息的位置给固定好了,就写在他的小括号内就可以了。
其余两个while的初始参数都写在进入循环之前的地方,循环终止条件都写在小括号内,每一次循环后的处理都写在大括号的最后就可以了。
至于循环体就不说了,因为都是在打括号内。
1.2 各自特点
值得一提的就是:
- for循环一般用于 **已知循环次数的时候**。
- do...while会在**循环条件判断之前**就执行一下循环的内容,所以用到的时候一定要考虑好循环次数表达式该怎么写。
- while循环一般可以把他写成死循环 用来提示每一次操作后的消息提示。
Tips:三种循环一般熟练使用for,然后其他两个任选其一使用,另一个知道有他的存在就好了。开发中最常用的就是for与while,很少见到do...while。
2. 循环的嵌套
三种循环可以做到你中有我,我中有你的效果。也就是说任意一个循环中都可以 再加入三个循环中的任何一个,而且这种嵌套可以是很多很多层的,(一般不建议超过三层,因为层数越多,效率越低)。
栗子:
while( ... ){
for( ...;...;...){
do{
...
}while(...);
}
while( ... ){
while( ... ){
...
}
}
}
3. 循环的中断
我们在使用循环的时候,有些取值并不是我们想要的,因此需要控制循环的执行,让循环在适当的地方停止。
我们控制循环有两种方式,这两种方式我们之前提到过,就是break与continue。前边讲过一点点,我们在循环这里在讲一遍它的作用。
3.1 break
break的作用比较强,可以中止整个循环。
3.1.1 break栗子-1
#include <stdio.h>
#include <stdlib.h>
void main()
{
for( int i=0 ; i < 10; i++){
if(i == 3){
break;
}
printf(" i 的值是:%d \n",i);
}
printf("循环 i 之后的内容\n");
}
执行结果
看,是不是很神奇吖,整个循环还没输出完,就被结束了。这个程序很简单的,就是只要程序执行到了break,那么这个循环就会完全结束,跳出循环往下执行。
3.1.2 break栗子-2
上边的例子只能证明break具有中止整个循环的作用,但是还不足以完全说明它的特性,那么什么是break的特性呢?就一句话:break 只会 终止距离他最近的一个循环。
如果要说明break的特性,请看下边的栗子。
#include <stdio.h>
#include <stdlib.h>
void main()
{
for( int i=1 ; i <= 5; i++){
for(int j=1 ; j <= 5; j++){
if(j == 3){
break;
}
printf(" j 的值是:%d \n",j);
}
printf(" *** i *** 的值是:%d \n",i);
}
}
结果
结果分析
3.2 continue
continue的作用效果没有break那么强烈,它的作用只是小范围的。它的作用就是:终止循环中的某一次循环,而不是结束整个循环。看下边栗子。
#include <stdio.h>
#include <stdlib.h>
void main()
{
for( int i=0 ; i < 10; i++){
if(i == 3){
continue;
}
if(i == 6){
continue;
}
printf(" i 的值是:%d \n",i);
}
printf("循环 i 之后的内容\n");
}
运行结果
结果分析
结束
最近有点忙,忙着准备毕设的内容,所以有点托更了。
下节课我会找一下题目,总结下我们循环的内容。