循环结构
c语言主要提供了3种循环语句,主要分为while循环,for循环和do while循环,接下来我将一一对其进行介绍。
1.while循环
while循环的语法结构与if语句很相似
while(表达式)
语句;
两者的区别就在于,while可以实现循环
1.1while循环实践
例子:
#include<stdio.h>
int main()
{
int i = 1;
while (i <= 10)
{
printf("%d ", i);
i++;
}
return 0;
}
这里是实现1到10在屏幕上的打印
当i等于1时,满足while执行的条件表达式,进入循环,打印此时的i值,i自身加1,继续回到while判断条件是否成立的地方,继续循环操作,直到条件表达式不满足,跳出循环,程序结束。
例子:逆序打印输入的正数的每一位
#include<stdio.h>
int main()
{
int m = 0;
scanf("%d", &m);
while (m)
{
printf("%d", m % 10);
m /= 10;
}
return 0;
}
这个代码实现当你输入1234这个数时,它逆序输出4 3 2 1
1.我们想要得到最低位,就要进行m%10,的操作,比如1234%10=4
2.当得到最低位后我们要把最低位”扔掉“,可以进行m=m/10的操作,例如m=1234/10,此时m就等于123,
3.重复1 2的操作,直到m=0,跳出循环。程序结束,输出。
2.for循环
for循环的语法形式如下:
for(表达式1;表达式2;表达式3)
语句;
表达式1:初始化循环变量
表达式2:说明循环结束的判断条件
表达式3:循环变量的调整
2.1for循环实践
仍以打印1到10 为例
#include<stdio.h>
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
printf("%d ", i);
}
return 0;
}
例子:打印1到100之内5的倍数的数字和
#include<stdio.h>
int main()
{
int i = 0;
int count = 0;
/*for(i=1;i<100;i++)*/
for (i = 5; i <= 95; i += 5)//相比于上一行的for循环语句,这个显然更优,在初始化和判断阶段很显然5和95是在1到100内的第一个和最后一个5的倍数,在调整部分每次调整都是5的倍数,减少了计算次数,提高了速度
{
count += i;
}
printf("和为%d", count);
return 0;
}
2.2for与while的对比
while和for循环都有,初始化变量,判断,调整三个部分,for比较集中,while比较分散,具体使用根据情况选择
3. do while 循环
do while循环语句的形式
do
语句;
while(表达式);
与for和while循环先判断是否满足条件,满足才进入循环,否则反之不同的是,do while循环是直接进入循环,先循环一次,再判断是否继续循环。
所以在do while 循环中,循环体至少执行一次
3.1do while 循环的实践
例子:在屏幕上打印1到10
#include<stdio.h>
int main()
{
int i = 1;
do
{
printf("%d", i);
i++;
}
while (i <= 10);
return 0;
}
do while 循环他的循环体是至少要执行一次,相对来说使用的情况较少
例子:计算输入的数是几位数
#include<stdio.h>
int main()
{
int m = 0;
int count = 0;
scanf("%d", &m);
do
{
count++;
m = m / 10;//删掉最后一位数
} while (m);
printf("%d位数", count);
return 0;
}
输入的数至少有一位数,直接进入循环,计数加1,然后去掉最后一位数。即便是0,他也是一位数也要计数。
循环相对来说还是比较基础的,相信大家认真学习后一定可以理解并灵活的运用。
加油!!!