C语言之三大循环详解

目录

一、while循环

1.1 if和while的对比

1.2 while语句的执行流程

1.3 while循环的实践

二、for循环

 2.1 语法格式

 2.2 for循环的执行流程

 2.3 for循环的实践

 三、do-while循环

3.1 语法格式

3.2 do while循环的执行流程

3.3 do while循环的实例


一、while循环

1.1 if和while的对比

if(表达式)

        语句;

while(表达式)

        语句;  //如果循环体想包含更多的语句,可以加上大括号

咱们可以来对比一下,具体写个代码吧,

#include<stdio.h>
int main()
{
	if (1)
		printf("haha\n");//if后边条件满足,打印一次haha
	return 0;
}
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
#include<stdio.h>
int main()
{
	while(1)
		printf("haha\n");//while后边的条件满足,死循环的打印haha

	return 0;
}
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

 这就是他们的区别,while语句是可以实现循环效果的。

1.2 while语句的执行流程

 首先上来就是执行判断表达式,表达式的值为0,循环直接结束;表达式的值不为0,则执行循环语句,语句执行完后再继续判断,是否进行下一次判断。

1.3 while循环的实践

练习1:在屏幕上打印1-10的值

#include<stdio.h>
int main()
{
	int i = 0;
	while (i <= 10)
	{
		printf("%d ", i);
		i = i + 1;
	}
	return 0;
}
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

 练习2:输入一个正的整数,逆序打印这个整数的每一位。

#include<stdio.h>
int main()
{
	int n = 0;
	scanf("%d", &n);
	while (n)
	{
		printf("%d ", n % 10);
		n /= 10;
	}
	return 0;
}
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

 

 题目解析:

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之前,就能得到所有的位。

二、for循环

 2.1 语法格式

for(表达式1;表达式2;表达式3)

        语句;  //如果循环体想包含更多的语句,可以加上大括号

表达式1:用于循环变量的初始化

表达式2:用于循环结束条件的判断

表达式3:用于循环变量的调整

 2.2 for循环的执行流程

 

 首先执行表达式1初始化循环变量,接下来就是执行表达式2的判断部分,表达式2的结果如果==0,则循环结束;表达式2的结果如果!=0则执行循环语句,循环语句执行完成后,再去执行表达式3,调整循环变量,然后再去表达式2的地方执行判断,表达式2的结果是否为0,决定循环是否继续。

整个循环的过程中,表达式1初始化部分只被执行1次,剩下的就是表达式2、循环语句、表达式3在循环。

 2.3 for循环的实践

练习:在屏幕上打印1-10的值

#include<stdio.h>
int main()
{
	int i = 0;
	for (i = 1; i <= 10; i++)
	{
		printf("%d ", i);
	}
	return 0;
}

 三、do-while循环

3.1 语法格式

 do

        语句;

while(表达式);

 do while循环是先直接进入循环体,执行循环语句,然后再执行while后的判断表达式,表达式为真,就会进行下一次,表达式为假,则不再继续循环。

3.2 do while循环的执行流程

 在do while循环中先执行图上的“语句”,执行完语句,再去执行“判断表达式”,判断表达式的结果是!=0,则继续循环,执行循环语句;判断表达式的结果==0,则循环结束。

所以在do while语句中循环体是至少执行一次的,这是do while循环比较特殊的地方。

3.3 do while循环的实例

 练习1:在屏幕上打印1-10的值。

#include<stdio.h>
int main()
{
	int i = 1;
	do
	{
		printf("%d ", i);
		i = i + 1;
	} while (i <= 10);
	return 0;
}

 练习2:输入一个正整数,计算这个整数是几位数?

#include<stdio.h>
int main()
{
	int n = 0;
	scanf("%d", &n);
	int cnt = 0;
	do 
	{
		cnt++;
		n /= 10;
	} while (n);
	printf("%d\n", cnt);
	return 0;
}

 这里并非必须使用do while语句,但是这个代码就比较适合使用do while循环,因为n即使是0,也是1位数,要统计位数的。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值