分支与循环的初步学习(2)

循环结构

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,他也是一位数也要计数。

循环相对来说还是比较基础的,相信大家认真学习后一定可以理解并灵活的运用。

加油!!!

  • 11
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值