C语言中三大循环的介绍与对比
一、三大循环(while、for、 do while)
while循环
C语⾔提供了3种循环语句, while 就是其中⼀种,接下来就介绍⼀下 while 语句。
//代码1
#include <stdio.h>
int main()
{
while(1)
printf("hehe\n"); //while后边的条件满⾜,死循环的打印hehe
return 0; }
⾸先上来就是执行判断表达式,表达式的值为0,循环直接结束;表达式的值不为0,则执行循环语 句,语句执行完后再继续判断,是否进行下⼀次判断。所以,**while语句是可以实现循环效果的。**下面是一个关于while循环的例题。
输⼊一个正的整数,逆序打印这个整数的每⼀位 。 例如: 输⼊:1234,输出:4 3 2 1 题⽬解析
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
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
while(n)
{
printf("%d ", n%10);
n /= 10;
}
return 0; }
for循环
for 循环是三种循环中使⽤最多的, for 循环的语法形式如下:
for(表达式1; 表达式2; 表达式3)
语句;//如果循环体想包含更多的语句,可以加上⼤括号
表达式1 用于循环变量的初始化
表达式2 用于循环结束条件的判断
表达式3 用于循环变量的调整
示例 练习:在屏幕上打印1~10的值
#include <stdio.h>
int main()
{
for(int i = 0; 6 for(i=1; i<=10; i++)
{
printf("%d ", i);
}
return 0;
}
运行结果
do while循环
在循环语句中 do while 语句的使⽤最少,它的语法如下:
do
语句;
while(表达式);
do while 循环则是先直接进⼊循环体,执⾏循环语句,然后再执⾏ while 后的判断表达式,表 达式为真,就会进⾏下⼀次,表达式为假,则不再继续循环。
所以在 do while 语句中循环体是⾄少执⾏⼀次的,这是 do while 循环⽐较特殊的地⽅。
示例
输⼊⼀个正整数,计算这个整数是⼏位数? 例如: 输⼊:1234 输出:4
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
int cnt = 0;
do
{
cnt++;
n = n / 10;
} while (n);
printf("%d\n", cnt);
return 0;
}
这⾥并非必须使用 do while 语句,但是这个代码就⽐较适合使用do while 循环,因为n即使是 0,也是1位数,要统计位数的。
二、三大循环的对比
while循环 与for循环
for 和 while 在实现循环的过程中都有初始化、判断、调整这三个部分,但是 for 循环的三个部分非常集中,便于代码的维护,而如果代码较多的时候 while 循环的三个部分就比较分散,所以从形式上 for 循环要更优⼀些。
do while循环的适用场景
⼀般 do while 使用在循环体至少被执行⼀次的场景下