分支语句和循环语句——循环语句(for、do……while)详解

🌹作者:云小逸
📝个人主页:云小扬的主页
📝码云:云小扬 (YunXiaoYang003) - Gitee.com
🤟motto:要敢于一个人默默的面对自己,强大自己才是核心。不要等到什么都没有了,才下定决心去做。种一颗树,最好的时间是十年前,其次就是现在!学会自己和解,与过去和解,努力爱自己。希望春天来之前,我们一起面朝大海,春暖花开!🤟
👏专栏:C语言初阶👏专栏:C语言进阶👏专栏:数据结构和算法👏
👏专栏:C++初阶—👏专栏:C++进阶–👏专栏:Linux学习👏


前言

今天我们接着上一次的分支语句和循环语句——循环语句(while),继续讲分支语句和循环语句——循环语句(for、do……while)
——————————————————————————————


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

(1)语法:

我们已经知道了while循环,但是我们为什么还要一个for循环呢?
首先来看看for循环的语法:

for(表达式1; 表达式2; 表达式3)
 循环语句;

表达式1为初始化部分,用于初始化循环变量的。
表达式2为条件判断部分,用于判断循环时候终止
表达式3为调整部分,用于循环条件的调整。

#include<stdio.h>
int main(void)
{
	int i = 0;
	for (i = 1; i < 10; i++)
	///for(i=1/*初始化*/; i<=10/*判断部分*/i++/*调整部分*/)
	{
		printf("%d ", i);
	}
	return 0;
}

在这里插入图片描述
流程图:
在这里插入图片描述

(2)for和while的对比:

int i = 0;//实现相同的功能,使用while
i=1;//初始化部分
while(i<=10)//判断部分
{
 printf("hehe\n");
 i = i+1;//调整部分
}
for(i=1; i<=10; i++)//实现相同的功能,使用while
{
 printf("hehe\n");
}

在这里插入图片描述

可以发现在while循环中依然存在循环的三个必须条件,但是由于风格的问题使得三个部分很可能偏离较 远,这样
查找修改就不够集中和方便。所以,for循环的风格更胜一筹;for循环使用的频率也最高。

(3)for中的break和continue的作用:

我们发现在for循环中也可以出现break和continue,他们的意义和在while循环中是一样的。
但是还是有些差异:

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

在这里插入图片描述
在这里插入图片描述

(3) for语句的循环控制变量

建议:

  1. 不可在for 循环体内修改循环变量,防止 for 循环失去控制。
  2. 建议for语句的循环控制变量的取值采用“前闭后开区间”写法。

建议一: 不可在for 循环体内修改循环变量,防止 for 循环失去控制

#include<stdio.h>
int main(void)
{
	int i = 0, j = 0;
	for (i=0; i < 3; i++)
	{
		for (; j < 3; j++)
			printf("%d ",j);
		printf("\n");
	}
	return 0;
}

在这里插入图片描述

在这里插入图片描述

建议二: 建议for语句的循环控制变量的取值采用“前闭后开区间”写法。

int i = 0;
for(i=0; i<10; i++)//前闭后开的写法
{}
for(i=0; i<=9; i++)//两边都是闭区间
{}

注:当for循环中判断条件省略时意味着判断恒成立!!!

(4)一道面试题:

//请问循环要循环多少次?
#include <stdio.h>
int main()
{
 int i = 0;
 int k = 0;
 for(i =0,k=0; k=0; i++,k++)
        k++;
 return 0;
}

在这里插入图片描述原因:因为条件判断语句是赋值语句,不是判断语句,k=0,为0为假,程序直接退出for循环!!!

5. do…while()循环

先循环后判断

(1)语法:

do
 循环语句;
while(表达式);

(2) do语句的特点

循环至少执行一次,使用的场景有限,所以不是经常使用。

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

在这里插入图片描述

(3)do while循环中的break和continue

类似于while,这里就不赘述了。

最后

十分感谢你可以耐着性子把它读完和我可以坚持写到这里,送几句话,对你,也对我:

1.做更好的自己,而不是完美的别人。
2.谁都愿意做自己喜欢的事情,可是,做你该做的事情,才叫成长。
3.活成一个真正有形的人,而不是—摊肉、一团混乱不堪的情绪。
4.放弃很容易,但坚持—定很酷
5.知识不是力量,知识用起来才是力量。
6.人生只有两个选择,要么忙着死,要么忙着活! 熬得住就出众,熬不住就出局,你的野心很大,所以没资格停下。
7.白天归顺生活,夜晚忠于自己

最后如果觉得我写的还不错,请不要忘记点赞✌,收藏✌,加关注✌哦(。・ω・。)

愿我们一起加油,奔向更美好的未来,愿我们从懵懵懂懂的一枚菜鸟逐渐成为大佬。加油,为自己点赞!

评论 127
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

云小逸

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

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

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

打赏作者

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

抵扣说明:

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

余额充值