*C语言进阶 —— 循环(纯干货版)

目录

一、while循环

(一)、语法形式

(二)、if和while的对比

(三)、while语句的执行流程

(四)、while语句的实践

二、for循环

(一)、语法形式

(二)、for循环的执行流程

(三)、for循环的实践

(四)、for循环和while循环的对比

三、do - while循环

(一)、语法形式

(二)、do while循环的执行流程

(三)、do while循环的实践

四、break和continue语句

(一)、while循环中的break和continue

① break举例

② continue举例

(二)、for循环中的break和continue

① break举例

② continue举例

(三)、do while循环中的break和continue

① break、continue举例

五、循环的嵌套

六、goto语句


一、while循环

(一)、语法形式

while语句的语法结构和if语句非常相似。其语法形式如下:

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

(二)、if和while的对比

if (表达式)
  语句

while (表达式)
     语句

代码如下:

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

(三)、while语句的执行流程

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

(四)、while语句的实践

练习:

练习:

分析:

1.要想得到num的最低位,可以使用num%10的运算,得到的余数就是最低位。

2.要想去掉num的最低位,找出倒数第二位,则使用num/10操作就可以去掉最低位。例:num=12345/10得到1234,1234相较于12345就去掉了最低位,1234%10就得到倒数第二位4。

3.循环1和2两个步骤,在num=0之前,就能到所有位。

二、for循环

(一)、语法形式

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

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

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

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

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

代码如下:

注:for循环的初始化、判断、调整三个部分是可以省略的;若判断部分省略的话,意味着判断恒成立。

(二)、for循环的执行流程

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

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

如前面代码所示:

(三)、for循环的实践

(四)、for循环和while循环的对比

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

练习:

三、do - while循环

(一)、语法形式

在循环语句中do while语句的使用最少,语法形式如下:

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

while和for两种循环都是先判断,条件如果满足就进入循环,执行循环语句,如果不满足就跳出循环;而do while循环则是先进入循环体,执行循环语句,然后再执行while后的判断表达式,表达式为真,就会进行下一次循环,表达式为假,则不再继续循环。

代码如下:

(二)、do while循环的执行流程

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

在do while语句中循环体是至少执行一次的,因此do while循环是三种循环中比较特殊的一类。

(三)、do while循环的实践

以下是其他循环解法:

四、break和continue语句

在循环执行的过程中,如果某些状况发生的时候,需要提前终止循环,这是非常常见的现象。C语言中提供了break和continue两个关键字,就是应用到循环中的。

⚪ break的作用是永久的终止循环,只要break被执行,直接就会跳出循环,继续往后执行。 

⚪continue的作用是跳过本次循环continue后面的代码。(在while循环和for循环中有所差异)

(一)、while循环中的break和continue

① break举例

break的作用就是永久的终止循环,只要break被执行,break外的第一层循环就终止。因此,想在某种条件下终止循环,则可以使用break来完成我们想要的效果。

分析:当打印完1,2,3,4,当i=5时,循环在break处终止,不再打印,不在循环。

② continue举例

continue是继续的意思,在循环中的作用就是跳过本次循环continue后面的代码,继续进行下一次循环的判断。

(二)、for循环中的break和continue

① break举例

其实和while循环中的break一样,for循环中的break也是用于终止循环的,不管循环还需要循环多少次,只要执行到break,循环就彻底终止。

break的作用是永久的终止循环,未来我们在某个条件发生的时候,不想再继续循环的时候,就可以使用break来完成。

② continue举例

在for循环中continue的作用是跳过本次循环中continue后面的代码,直接渠道循环的调整部分。

(三)、do while循环中的break和continue

do while语句中的break和continue的作用和while循环中的几乎一模一样。

① break、continue举例

五、循环的嵌套

练习:

分析:1.要从100-200之间找出素数,首先得有100-200之间的数,可以使用循环解决。

           2.假设要判断i是否为素数,需要拿2~i-1之间的数字去试除,则需要2~i-1之间的数,可以使用循环解决。

           3.如果2~i-1之间有数字能整除i,则i不是素数,如果都不能整除,则i是素数。

以下是几种小优化写法:

六、goto语句

C语言提供了一种非常特别的语法,就是goto语句和跳转标号,goto语句可以实现在同一个函数内跳转到设置好的标号处。跳转标号名称不是固定的,可以根据需要自己设定。

代码如下:

goto语句如果使用的不当,就会导致在函数内部随意乱跳转,打乱程序的执行流程,所以我们的建议是能不用尽量不去使用;但goto语句也不是一无是处,在多层循环代码中,如果想要快速跳出使用goto就很方便。

代码如下:

for (...)
{
	for (...)
	{
		for (...)
		{
			for (...)
			{
				if (disater)
					goto error;
			}
		}
	}
}
error:

分析:本来for循环想提前退出得使用break语句,一个break只能跳出一层for循环,上述代码中四层循环就得使用4个break才能跳出循环,在这种情况下我们使用goto语句就会更加的便捷。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值