【C语言】详解分支与循环语句(2)


分支语句,条件满足则执行,条件不满足则跳过,但是这个语句只执行一次。但我们生活中的很多实例是,很多同一件事是要完成很多次的。所以循环语句应用而生。这就是我们今天主要要聊的内容——循环语句。

循环语句

while

while语句的语法结构跟if语句的结构基本上一致,嗯,就是把if换成while就成了。

while(表达式)
   循环语句

很简单吧,那让我们再了解一下while中的break和continue

break
break在循环中的用处是直接 永久 终止循环。即在循环(不论是哪种循环语句)中只要遇到break,就停止执行后期循环中的所有语句。
来,举例子
没有break时的输出情况

int main()
{
	int i = 1;
	while (i <= 10)
	{
		/*if (5 == i)
			break;*/
		printf("%d ", i);
		i++;
	}
	return 0;
}

在这里插入图片描述
取消对break注释后的输出情况

在这里插入图片描述

continue
continue是用于终止本次循环的,即在循环中遇见continue,其后的代码不会再执行,而是直接跳转到while语句的判断部分,进行下一次循环。
我们继续用上面的那个例子来说明

在这里插入图片描述乍眼看过去,似乎好像是跟break的输出效果是一样的啊,嘿嘿,再仔细看看,大有不同,continue的输出结果中4后的光标还在闪,也没有那段常常的结束语,所以啊,这个循环并没有结束,而是陷入了死循环。
因为,当i==5时,continue跳出本次循环,不再执行i自增,i就一直等于5,一直满足条件i<=10,循环也就一直不能结束。
到此,while我们基本上就聊完了,那就进入下一个循环语句吧

for

已经有while,为什么还要引入for呢?不知道大家有没有这个疑问,那我们就先来聊聊for的优势,引入for绝对不是多此一举。
首先从for的语法结构讲起,并与while做个对比,就明白了

for(表达式1;表达式2;表达式3;)//注意括号外没有";",若有会导致死循环,
//但每个表达式后必须有";",即便语句省略
		循环语句;

表达式1是初始化部分,用于初始化循环变量,这也就是说在你定义变量时所初始化的值并不重要,不会影响你的循环,但是while就不一样了,定义变量时的初始化就是while循环的初始化
表达式2为条件判断部分,用于判断循环什么时候终止,相当于是while后()里的内容
表达式3为调整部分,用于循环的调整,而while的调整部分再大括号里,这也就是为什么continue在while与for中输出结果不同的原因(下面我们会降将到)
举个简单的例子来对比一下

int i = 1;//初始化部分
	while (i <= 10)//判断部分
	{
		printf("haha\n");
		i++;//调整部分

实现相同的功能,用for

for (i = 1; i <= 10; i++)
		printf("haha\n");

是不是就简洁很多。可能随着你的能力越来越强,代码也会越来越长,在while循环中,初始化、判断、调整这三个部分就偏离的比较远,不方便后期的查找与修改。而在for循环中,这三个部分集中在一起,这样查找修改就很集中和方便。这样看来,for的循环风格就更略胜一筹,for的使用频率也是最高的。
按照while的套路来讲,现在我们应该进入break和continue环节了

break
我们继续用上面的那个例子来说明
在这里插入图片描述仔细对比,发现这与while的输出结果一样啊,确实,是一样的。那我们就不赘述了。

continue
还是一样沿用上面的例子,嘿,这一个例子可以贯穿全文
在这里插入图片描述
这确实就与while中的continue的输出结果不同了,因为在for中调整部分不在continue的后面,continue跳出本次循环来到的是for括号后面的i++,调整部分。
至此,for也就基本上聊完了,哦对了,还有一些小小的建议:

  1. 尽量不要在for循环体内修改变量,防止for循环变量失去控制
  2. 建议for语句的循环控制变量的取值采用“前闭后开区间”的写法
for (i = 0; i < 10; i++)//前闭后开的写法,可不要先看这样写,
//这个10不简单,它是有意义的,它是循环的次数,
  1. 刚开始不要随便省略初始化、判断、调整部分,虽然理论上是可以的
    比如
    在这里插入图片描述

在这里插入图片描述由两张图知道,随意的省略带来的结果并不一样,第二张图中省略了初始化部分,这样当i==2时,j没有初始化为0,还是3,不满足条件,循环就结束了,所以就只输出3个haha。

do-while

语法结构

do
		循环语句;
while(表达式);//注意此处有;

由它的语法结构可知do循环的特点:循环至少执行一次,do-while的使用场景有限,所以不是很常用
do-while中的break与continue
break
在这里插入图片描述continue
在这里插入图片描述至此,循环语句的三种语法结构都讲完了。希望能对大家有所帮助

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值