六千字带你快速掌握循环结构(C语言超详细教程)

在这里插入图片描述

文章目录

每篇前言

1.导语
2.目标
3.重点

✨while 循环语句
  🚀1.1,while语句基本语法
  🚀1.2,while循环使用示例
  🚀1.3,while使用注意事项
  🚀1.4,while之跳转语句continue
  🚀1.5,while之跳转语句break

✨do-while 循环语句
  🚀2.1,do-while语句基本语法
  🚀2.2,do-while循环使用示例
  🚀2.3,do-while使用注意事项
  🚀2.4,do-while之跳转语句continue
  🚀2.5,do-while之跳转语句break

✨for 循环语句
  🚀3.1,for语句基本语法
  🚀3.2,for循环使用示例
  🚀3.3,for使用注意事项
  🚀3.4,for之跳转语句continue
  🚀3.5,for之跳转语句break

✨循环嵌套
  🚀4.1,循环嵌套基本语法
  🚀4.2,循环嵌套使用示例
  🚀4.3,循环嵌套使用注意事项

✨goto跳转语句

4.结语

每篇前言

博客主页:小杨爱编程☆

作者简介:2022年博客萌新

我的座右铭:有志者立长志,无志者常立志

作者请求:由于博主水平有限,难免会有错误和不准之处,希望各位小伙伴能够在留言区批评斧正。
在这里插入图片描述


导语

本篇博客主要向各位小伙伴们详细介绍C语言的循环结构。希望大家能够通过阅读这篇博客,受益良多!


目标

了解和掌握C语言的循环结构知识,对循环结构有全新的认识和理解


知识点

✨while 循环语句
🚀1.1,while语句基本语法

语句格式:

在这里插入图片描述

执行流程:

在这里插入图片描述

流程分析

1. 第一步:计算表达式的值,若表达式值为真,执行第二步,若为假,则跳转至第四步。
2. 第二步:执行循环体语句。
3. 第三步:返回第一步。
4. 第四步:结束循环,执行while语句的下一条语句。

注意:while语句的特点:先执行判断条件,后执行循环体


🚀1.2,while循环使用示例

示例:打印1-10的数字

代码如下:

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

示例输出:

在这里插入图片描述


🚀1.3,while使用注意事项

1,while语句后面的括号"( )"不可省略。

2,while语句中的表达式可以是任意类型的表达式,若表达式的值为非0,则表示循环条件为真,执行循环体语句;若表达式的值为0,则表示循环条件为假,不执行循环体语句,结束循环,执行循环后面的语句。

3,如果表达式一开始的值为0,则循环体一次都不执行,直接执行循环体后面的语句。

4,循环体语句可以是复合语句,即当循环体由多条语句构成时,必须用一个大括号将语句括起来,形成复合语句。

5,为使循环能够正常结束,循环体中应对表达式进行修正,使表达式的值趋于假,避免出现死循环。


🚀1.4,while之跳转语句continue

示例如下:

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

示例输出:

在这里插入图片描述
示例分析:

在这个while循环中,i从1依次打印后++。当程序打印4后,程序再执行i++这个代码后i的值为5,当i==5时,执行continue语句,continue语句会使本次while循环终止,continue后边代码不执行,直接调到while语句的判断部分,i未进行i++操作,i始终为5,因此这个程序会陷入死循环,输出结果打印出1 2 3 4 后死循环。

总结
1,continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。

2,continue语句只能在循环体语句中,常与if语句使用。


🚀1.5,while之跳转语句break

示例如下:

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

示例输出:

在这里插入图片描述
示例分析:

在这个while循环中,i从1依次打印后++。当程序打印4后,程序再执行i++这个代码后i的值为5,当i==5时,执行break语句,break语句会使这个while循环终止,后续步骤不进行,因此这个程序只会打印出1 2 3 4。

注意:i++这个语句放置的位置与程序输出的结果有影响,放置位置不同,输出结果可能不相同。


总结:
1,当break语句用于while循环语句中,可使程序终止循环进而执行while语句后继语句。简而言之,在循环中只要遇到break,就直接终止循环。所以:while中的break是用于永久终止循环的。

2,通常情况下,break语句总是与if语句一起配合使用,即满足条件退出循环。


由此返回目录

✨do-while 循环语句
🚀2.1,do-while语句基本语法

语句格式

在这里插入图片描述

执行流程:

在这里插入图片描述

流程分析:

1,第一步:执行循环体语句。
2,第二步:计算表达式的值,若表达式的值为真(非0),返回第一步;若表达式的值为假(0),则执行第三步。
3,第三步:结束循环,执行do-while语句的下一条语句。

注意:do-while语句的特点为先执行循环体,后判断循环条件。因此,do-while循环至少要执行一次循环体。


🚀2.2,do-while循环使用示例

示例:打印1-10的数字

示例代码:

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

示例输出:

在这里插入图片描述


🚀2.3,do-while使用注意事项

1,在do之后不能有语句结束符";",因为该循环还未结束。

2,在while(表达式)之后必须要有语句结束符";",表示do-while循环到此结束。

3,在循环体中必须要有改变循环条件的语句,否则会出现死循环。


🚀2.4,do-while之跳转语句continue

示例代码:

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

示例输出:

在这里插入图片描述
示例分析:

在这个do-while循环中,i从1依次打印后++。当程序打印4后,程序再执行i++这个代码后i的值为5,当i==5时,执行continue语句,continue语句会使本次do-while循环终止,continue后边代码不执行,直接调到while语句的判断部分,i未进行i++操作,i始终为5,因此这个程序会陷入死循环,输出结果打印出12 3 4 后死循环。(用法同while循环相类似)

注意:i++这个语句放置的位置与程序输出的结果有影响,放置位置不同,输出结果可能不相同。


总结:
1,continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。

2,continue语句只能在循环体语句中,常与if语句使用。


🚀2.5,do-while之跳转语句break

示例如下:

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

示例输出:

在这里插入图片描述
示例分析:

在这个do-while循环中,i从1依次打印后++。当程序打印4后,程序再执行i++这个代码后i的值为5,当i==5时,执行break语句,break语句会使这个do-while循环终止,后续步骤不进行,因此这个程序只会打印出1 2 3 4。(用法同while循环相同)


总结:
1,当break语句用于do-while循环语句中,可使程序终止循环进而执行while语句后继语句。简而言之,在循环中只要遇到break,就直接终止循环。

2,通常情况下,break语句总是与if语句一起配合使用,即满足条件退出循环。


由此返回目录

✨for 循环语句
🚀3.1,for语句基本语法

语句格式:

在这里插入图片描述
注意:
表达式1为初始化部分,用于初始化循环变量。
表达式2为条件判断部分,用于判断循环是否终止。
表达式3为调整部分,用于循环条件的调整。

执行流程:

在这里插入图片描述

流程分析:

1. 第一步:首先计算表达式1。
2. 第二步:判断表达式2,若其值为真(非0),则执行循环体语句,然后执行第三步;若为假(0),结束循环,转到第五步执行。
3. 第三步:计算表达式3。
4. 第四步:返回第二步继续执行。
5. 第五步:循环结束,继续执行for语句的下一条语句。

注意:表达式1只是在进入循环之前就计算了一次。表达式2,循环体语句和表达式3将重复执行。


🚀3.2,for循环使用示例

示例:打印1-10的数字

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

示例输出:

在这里插入图片描述


🚀3.3,for使用注意事项

1,省略表达式1,可将循环变量赋初值放在for之前,但不能省略第一个";"。

2,省略表达式2,表示不对循环进行控制,这时若没有其他的处理的话会出现死循环,应避免这种情况。

3,省略表达式3,可以在循环体语句中添加修饰循环变量的值的语句。

4,for语句的一般形式中的表达式1和表达式3可以是逗号表达式。

5,for语句的一般形式中的表达式2的值只要是非0,就执行循环体。

6,for语句的一般形式中的循环体语句可以省略。


🚀3.4,for之跳转语句continue

示例代码:

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

示例输出:

在这里插入图片描述

示例分析:

在这个for循环中,i从1依次打印后++。当程序打印4后,程序再执行i++这个代码后i的值为5,当i==5时,执行continue语句,continue语句会使本次for循环终止,continue后边代码不执行,直接调到for循环语句的判断部分,未进行打印5这个数的操作,i根据判断部分的结果决定再进行i++操作,依次打印6 7 8 9 10,因此这个程序最终输出结果是打印出1 2 3 4 6 7 8 9 10,缺少5。(与while循环和do-while循环用法有区别)


总结:
1,continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。

2,continue语句只能在循环体语句中,常与if语句使用。


🚀3.5,for之跳转语句break

示例代码:

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

示例输出:

在这里插入图片描述
示例分析:

在这个for循环中,i从1依次打印后++。当程序打印4后,程序再执行i++这个代码后i的值为5,当i==5时,执行break语句,break语句会使这个while循环终止,后续步骤不进行,因此这个程序只会打印出1 2 3 4。(与while循环和do-while循环用法相似)


总结
1,当break语句用于while循环语句中,可使程序终止循环进而执行while语句后继语句。简而言之,在循环中只要遇到break,就直接终止循环。

2,通常情况下,break语句总是与if语句一起配合使用,即满足条件退出循环。


由此返回目录

✨循环嵌套
🚀4.1,循环嵌套基本语法

语句格式:

  • for语句中嵌套for语句
    在这里插入图片描述

  • for语句中嵌套while语句
    在这里插入图片描述

  • while 语句中嵌套while语句
    在这里插入图片描述

  • do-while语句中嵌套for语句
    在这里插入图片描述

  • do-while语句中嵌套do-while语句
    在这里插入图片描述

  • while 语句中嵌套do-while语句
    在这里插入图片描述


🚀4.2,循环嵌套使用示例

示例:打印九九乘法表

示例代码:

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

示例输出

在这里插入图片描述


🚀4.3,循环嵌套使用注意事项

1,外循环执行一次,内循环执行一轮。

2,循环嵌套格式中的内外循环体不允许出现交叉,即外循环要完全包含内循环。

3,循环嵌套时,内循环体中使用break语句和continue语句时,只影响包含它们的内循环,与外循环无关。


由此返回目录

✨goto跳转语句

goto语句:可以随意滥用和标记跳转。理论上 goto语句是没有必要的,但在某些场合下goto语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过程。

例如:一次跳出两层或多层循环。

多层循环这种情况使用break达不到目的。break只能从最内层循环退出到上一层的循环。


由此返回目录

结语

各位小伙伴们,【小杨带你玩转C语言】循环结构(详解篇)就介绍到这里,下期向各位小伙伴们讲解函数部分内容。敬请期待!

如果各位小伙伴们感觉写的不错,或者阅读后有些许收获的话,麻烦小伙伴们动动你们的小手,给个三连呗(✌关注,✌点赞,✌评论),多多支持一下!!
小伙伴们,切记!这些示例代码一定要记得自己实际操作一下,这样才能加深对这些知识的理解!

最后,感谢每一位小伙伴的阅读,让我们一起努力,一起加油,一起进步!

在这里插入图片描述


评论 45
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小杨MiManchi

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

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

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

打赏作者

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

抵扣说明:

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

余额充值