C语言分支与循环(下)——循环结构

接上讲我们学习了分支结构,接下来我们就来学习一下C语言的循环结构。

那循环结构有哪些呢?

这里C语言介绍了3中循环结构:while循环,for循环,do—while循环。

正文开始!!!

目录

1、while循环

1.1  if 和 while的对⽐

1.2  while语句的执行流程

1.3 while循环的实践

​编辑

2、for循环

1.1 语法形式

2.2 for循环的执行流程

2.3 for循环的实践

2.4 while循环和for循环的对比

2.5 练习

3、do-while循环

3.1 语法形式

2.2 do while循环的执行流程

3.3 do while循环的实例

3.4 练习


 

1、while循环

C语⾔提供了3种循环语句, while 就是其中⼀种,接下来就介绍⼀下 while 语句。 while 语句的语法结构和 if 语句非常相似。

1.1  if 和 while的对⽐

if(表达式)
 语句;
 
 
while(表达式)
 语句;//如果循环体想包含更多的语句,可以加上⼤括号

你可以对⽐来看⼀下,具体写个代码吧

//代码1
#include <stdio.h>
int main()
{
	if (1)
		printf("hehe\n"); //if后边条件满⾜,打印⼀次hehe
	return 0;
}

//代码2
#include <stdio.h>
int main()
{
	while (1)
		printf("hehe\n"); //while后边的条件满⾜,死循环的打印hehe
	return 0;
}

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

1.2  while语句的执行流程

0b073f470e704ca19eb21abcedbd9ddd.png

⾸先上来就是执⾏判断表达式,表达式的值为0(no),循环直接结束;表达式的值不为0(yes),则执⾏循环语句,语句执⾏完后再继续判断,是否进⾏下⼀次判断。

1.3 while循环的实践

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

参考代码:

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

06c4fb86e4bb4f2caba5462bf3498e1c.png

2、for循环

1.1 语法形式

for 循环是三种循环中使⽤最多的, for 循环的语法形式如下:

for(表达式1; 表达式2; 表达式3)
 语句;//如果循环体想包含更多的语句,可以加上⼤括号

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

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

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

2.2 for循环的执行流程

cd969263508e4efb878fb2105770c2f2.png

⾸先执⾏ 表达式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;
}

运⾏结果:

7d863bef6dab4ed0ad0d477d2f618ebe.png

2.4 while循环和for循环的对比

1efe3a576d814e008c9442b5bcb2357f.png

for 和 while 在实现循环的过程中都有初始化、判断、调整这三个部分,但是 for 循环的三个部分⾮常集中,便于代码的维护,而如果代码较多的时候 while 循环的三个部分就⽐较分散,所以从形式上 for 循环要更优⼀些。

2.5 练习

练习: 计算1~100之间3的倍数的数字之和

参考代码:

#include <stdio.h>
int main()
{
 int i = 0;
 int sum = 0;
 for(i=1; i<=100; i++)
 {
 if(i % 3 == 0)
 sum += i;
 }
 printf("%d\n", sum);
 return 0;
}
//⼩⼩的优化
//如果能直接产⽣3的倍数的数字就省去了多余的循环和判断
#include <stdio.h>
int main()
{
 int i = 0;
 int sum = 0;
 for(i=3; i<=100; i+=3)
 {
 sum += i;
 }
 printf("%d\n", sum);
 return 0;
}

3、do-while循环

3.1 语法形式

在循环语句中 do while 语句的使⽤最少,它的语法如下:

do
 语句;
while(表达式);

while 和 for 这两种循环都是先判断,条件如果满⾜就进⼊循环,执⾏循环语句,如果不满⾜就跳 出循环;

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

2.2 do while循环的执行流程

fd4313d01e734ade99d77f11544347a3.png

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

所以在 do while 语句中循环体是⾄少执⾏⼀次的,这是 do while 循环⽐较特殊的地⽅。

3.3 do while循环的实例

在屏幕上打印1~10的值

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

	return 0;
}

1c0becac9f3548f39840b8306bd207d9.png

3.4 练习

输⼊⼀个正整数,计算这个整数是⼏位数?

例如: 输⼊:1234 输出:4

            输⼊:12 输出:2

参考代码:

#include <stdio.h>
int main()
{
	int n = 0;
	scanf("%d", &n);
	int cnt = 0;
	do
	{
		cnt++;//进循环就+1,因为最少都是一位数
		n = n / 10;//x位数/10就剩下x-1位数,一直循环,直至n=0时,循环结束
	} while (n);
	printf("%d\n", cnt);
	return 0;
}

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

今天的三种循环就介绍完啦,欢迎大家浏览!!

下期讲解:break和continue语句以及循环的嵌套!!!

 

  • 13
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Byte Master

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值