C语言分支与循环(二)for、while、do while循环

1、for循环

for循环是三种循环中使用最多的

1.1  for循环语法形式

for循环的语法形式如下:

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

    循环体;

}

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

表达式2:循环执行的条件

表达式3:循环变量的自加或自减

1.2  for循环的执行流程

首先执行表达式1:初始化循环变量,接着执行表达式2:判断内容,表达式2的结果如果==0,则循环结束或循环不执行;表达式2的结果如果!=0,则执行循环语句,循环语句执行完后,最后执行表达式3:调整循环变量,然后再去表达式2执行判断,表达式结果是否为0决定循环是否执行。

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

在循环过程中,每做一次循环,循环变量的值就会发生改变

而循环执行的条件与循环变量的值相关,所以每一次循环后都会再做一次判断,

直到循环变量的值不满足执行条件,则循环结束。 

1.3  for循环的实践

举例:在屏幕上打印1-10的数

int main()
{
	for (int i = 1; i <11 ; i++)
	{
		printf("%d ", i);
	}

	return 0;
}

运行结果

2、while循环
2.1 while语句的形式
while(表达式)
{
  循环语句;
}

其中括号内的表达式为循环是否执行的判断条件

同样,当循环语句只有一句时,{}可以省略不写

while循环与if语句的语法形式非常相似,可以对比参考

 2.2 while循环的执行流程

首先上来执行表达式,表达式结果为真,则执行循环语句;为假,则不执行while循环;

当一次while循环执行结束后,代码又会回到表达式进行判断,然后执行循环语句,直到表达式结果为0即条件不满足,则结束循环。

2.3 while循环的实践

举例:输出1-10的数字

int main()
{
	int i = 1;
	while (i<11)
	{
		printf("%d ", i);
		i++;
	}
	return 0;
}

打印结果为:

3、 while循环和for循环的对比

从上面打印1-10的数字的代码可以看到for循环与while循环的一些区别

能看出,for循环和while循环都有初始化、判断、调整这三个部分 ,但是不同的是,

for循环的三个部分非常集中,都在一个()内,便于代码的维护,

while循环三个部分就会比较分散,所以在形式上,for循环要更优秀些

4、 do-while循环
4.1  do-while循环的语法形式
do
{
    循环语句;

}while(表达式);

当循环语句只有一句时可写成一下形式:

do
 
 循环语句;

while(表达式);

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

区别于for循环和while循环,这两者都是先进行判断,条件满足才执行循环;

而do while循环是先执行循环再进行判断,即do while循环至少都会执行一次

4.2 do-while循环的实例

1、在屏幕上打印1-10的数字

int main()
{
	int i = 1;
	do
	{
		printf("%d ", i);
		i++;
	} while (i<11);

	return 0;
}

2、利用do while循环特性的循环

输入一个正整数,判断这个数是几位数

int main()
{
	int n=0;
	scanf("%d", &n);
	int count = 0;//记录位数
	do
	{
		count++;
		n = n / 10;
	} while (n);
	printf("您输入的是一个%d位数\n", count);

	return 0;
}

这里不是一定要用do while循环,但是它比较适合do while循环,无论如何循环也会至少执行一次,因为即使n是0,也是一位数,也要统计数位。

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值