在上一节的内容中,我们学习了判断语句和循环语句中的一种,for循环
,今天我们将继续往下学习循环的另外两种形式,今天的内容同样十分重要
,因此大家要打起精神,好好掌握。
好了,废话不多说,开搞!!!
while循环
基本用法
在c
语言中,除了上节讲的for循环
外,最常用的另一种循环便是while循环
了,该循环的使用方式如下:
while(条件)
{
你要干哈;
条件调整;
}
从其使用方式即可看出和上节的for循环
差别很大,可以看出while循环
条件判断和条件调整并不在同一处进行,
初始化在外部进行初始化
下面为一个使用while循环
打印小于10的整数的示例代码:
#include<stdio.h>
int main()
{
int i = 0;
while(i<10)
{
printf("%d\n",i);
i++;
}
return 0;
}
运行代码其结果如下:
while循环中的终止
经过上节的学习,我们知道,在for循环
的内部,如果如果不想让循环再次执行,可以使用break
跳出循环,在while循环
中,同样可以使用该命令终止循环,假设仍为上述代码,但当i=7时,我们不想循环了,即i=7跳出循环,那么打印的结果是不是0 1 2 3 4 5 6
呢,示例代码如下:
#include<stdio.h>
int main()
{
int i = 0;
while(i<10)
{
if (i == 7)
break;
printf("%d\n",i);
i++;
}
return 0;
}
保存编译并运行,可以得到以下结果:
确实是和我们分析的结果一致,也就是说
break在for循环和while循环中的作用一样,终止整个循环
while循环中的跳过
既然break
的作用都和for循环
中的一致,那么continue
是否在while循环中具有同样跳出本次循环的功能呢(为啥跳出本次循环???回去补习),如果你忘记了为啥,请返回补习,入口如下:判断语句和循环语句1
此时我不想打印4这个数字,因为不吉利,那么我就使用该语句,当i=4时,跳出本次循环
,下面上代码演示:
#include<stdio.h>
int main()
{
int i = 0;
while(i<10)
{
if (i == 4)
continue;
printf("%d\n",i);
i++;
}
return 0;
}
那么结果真的会和我们想象的一样,打印出来0 1 23 5 6 7 8 9
吗,编译运行,可以得到结果如下:
看到这里你可能有点疑问,怎么只打印0123呢,后面的数字呢,其实并不是这样,程序实则仍在运行,因为最后的光标仍在闪烁
,并未结束,这就说明程序进入了死循环中
,下面对该代码进行分析;
上述图片中,很好的解释了为什么陷入死循环中,那么如果我想实现不打印4打印其他的功能该如何做呢,此时需要将调整条件i++放在最上面
,并且初始化的条件
和判断条件
也需要进行改变,如下代码所示,即可实现功能:
#include<stdio.h>
int main()
{
int i = -1;
while(i<9)
{
i++;
if (i == 4)
continue;
printf("%d\n",i);
}
return 0;
}
保存编译可以得到得到想要的结果如下所示:
因此我建议,在使用while循环
的continue
命令时,一定要仔细谨慎
,不然极有可能陷入死循环中
。也即是说:
continue在while循环和for循环中的功能的确是一样的,都是跳过此循环的后续代码, 但是在使用时要注意细节,否则会产生不当的后果
do while循环
循环中的最后一种就是整个了,虽然其使用的频率不如前两种高,但仍需进行了解,其使用的基本条件如下:
do
{
你要干啥;
}
while(判断条件);
从上述的基本用法可以看到,此循环和前两种循环的最大差别就在于:
其先执行循环体的内容,然后再进行判断
也有就是有一种“先斩后奏,皇权特许”
的风格,你问我西厂是什么,东厂管不了的……不好意思走错片场了,
下面仍以打印小于10的正整数为例:
#include<stdio.h>
int main()
{
int i = 0;
do
{
// if (i == 4)
// continue;
printf("%d\n",i);
i++;
}
while (i<10);
return 0;
}
运行结果如下所示:
do while中的终止与跳过
do while循环
中的终止与跳过的用法同while循环,就不再此处进行过多的赘述了,在上文中讲解的较为清晰,大家不太理解的可以回看。
小结
至此,c
语言中的判断语句和循环语句就全部讲解完毕了,这两节的内容的重要性无法用语言来表述,大家一定要认真认真再认真。
以上就是本文的全部内容了,感谢大家的观看,如果方便,谢谢大家点个赞和关注哦!
您的点赞或评论或关注是对我最大的肯定,谢谢大家!!!