C语言循环结构

系列文章目录

文章目录


前言

提示:这里可以添加本文要记录的大概内容:
1.掌握C语言循环结构的基本用法
2.循环包括for循环,while循环,do~循环
3.循环结构使用时所需要注意事项

1. for循环

for(表达式1;表达式2;表达式3)
表达式1:用于变量的初始化
表达式2:用于循环语句的判断
表达式3:用于变量调整

,表达式1初始化部分只被执⾏1次,剩下的就是表达式2、循环语句、表达式3在循环。

表达式1.2.3都可以省略,但是新手尽量不要省略,以免带来不必要的麻烦

for循环的实践
在屏幕上打印1~10的值

1 #include <stdio.h>
2 int main()
3 {
4 	int i = 0;
5 	for(i=1; i<=10; i++){
6 	printf("%d ", i);
7	}
8	return 0;
9 	}
//输出结果为1.2.3.4.5.6.7.8.9.10

同样for循环也可以嵌套
如:输出9*9乘法表

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

在这里插入图片描述
for循环嵌套使用还是非常好玩的

2. while循环

while 语句的语法结构和 if 语句⾮常相似
为逻辑判断语句
结构为

while(a){
	循环语句;
}

(a)a为真(非零)则循环,a为假(为零)则不执行循环语句,先判断后循环

例子:在屏幕上打印1~10的值

#include <stdio.h>
int main()
{
 	int i = 1;
 	while(i<=10)
 	{
	printf("%d ", i);
 	i = i+1;
 	}
 	return 0;
}
//结果为1 2 3 4 5 6 7 8 9 10

练习:
输⼊⼀个正的整数,逆序打印这个整数的每⼀位
例如:
输⼊:1234,输出:4 3 2 1
输⼊:521,输出:1 2 5

解析:

  1. 要想得到n的最低位,可以使⽤n%10的运算,得到的余数就是最低位,如:1234%10得到4
  2. 要想去掉n的最低位,找出倒数第⼆位,则使⽤ n=n/10 操作就可以去掉最低位的,如:
    n=1234/10得到123,123相较于1234就去掉了最低位,123%10就得到倒数第⼆位3。
  3. 循环1和2两个步骤,在n变成0之前,就能到所有的位。
#include <stdio.h>
int main()
{
 	int n = 0;
 	scanf("%d", &n);
 	while(n)
 	{
 		printf("%d ", n%10);
 		n /= 10;
 	}
 	return 0;
}

3.do-while循环

在循环语句中 do while 语句的使⽤最少
使用格式

do{
 语句;
}while(表达式)

while 和 for 这两种循环都是先判断,条件如果满⾜就进⼊循环,执⾏循环语句,如果不满⾜就跳
出循环;
⽽ do while 循环则是先直接进⼊循环体,执⾏循环语句,然后再执⾏ while 后的判断表达式,表
达式为真,就会进⾏下⼀次,表达式为假,则不再继续循环。

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

同上例子:

输⼊⼀个正整数,计算这个整数是⼏位数?
例如:
输⼊:1234 输出:4
输⼊:12 输出:2
#include <stdio.h>
int main()
{
 	int n = 0;
 	scanf("%d", &n);
 	int cnt = 0;
	 do{
 		cnt++;
  		n = n / 10;
 	 } while (n);
 	printf("%d\n", cnt);
 return 0;
}

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

4.break和continue语句

• break 的作⽤是⽤于永久的终⽌循环,只要 break 被执⾏,直接就会跳出循环,继续往后执
⾏。

• continue 的作⽤是跳过本次循环 continue 后边的代码,在 for 循环和 while 循环中有所
差异的。

while循环break例子:

#include <stdio.h>
int main()
{
 	int i = 1;
 	while(i<=10){
 		if(i == 5)
 		break;//当i等于5后,就执⾏break,循环就终⽌了
 		printf("%d ", i);
 		i = i+1;
 	}
 return 0;
}

输出:1 2 3 4
解析:打印了1,2,3,4后,当i等于5的时候,循环正 break 的地⽅终⽌,不再打印,不再循环。
while循环continue例子:

#include <stdio.h>
int main()
{
 	int i = 1;
 	while(i<=10){
 		if(i == 5)
 		continue;
 //当i等于5后,就执⾏continue,直接跳过continue的代码,去循环的判断的地⽅
 //因为这⾥跳过了i = i+1,所以i⼀直为5,程序陷⼊和死循环
 		printf("%d ", i);
		i = i+1;
	 	}
 	return 0;
}

解析: continue 可以帮助我们跳过某⼀次循环 continue 后边的代码,直接
到循环的判断部分,进⾏下⼀次循环的判断,如果循环的调整是在 continue 后边的话,可能会造成
死循环。

5. for循环中的break和continue

其实和 while 循环中的 break ⼀样,这里就不在举例子了
看for循环中 continue举例

#include <stdio.h>
int main()
{
 	int i = 1;
	 for(i=1; i<=10; i++){
 		if(i == 5)
 		continue;//这⾥continue跳过了后边的打印,来到了i++的调整部分
 		printf("%d ", i);
 	 }
 	return 0;
}
//输出结果为:1 2 3 4 6 7 8 9 10,跳过5

在这⾥我们也可以对⽐⼀下 while 循环和 for 循环中 continue 的区别:
在这里插入图片描述
while中直接跳回判断,而for循环先++在判断

6.goto语句实现循环

goto语句
C语⾔提供了⼀种⾮常特别的语法,就是 goto 语句和跳转标号, goto 语句可以实现在同⼀个函数
内跳转到设置好的标号处。
如:

#include <stdio.h>
int main()
{
 	printf("hehe\n");
 	goto next://goto后面的可以是随机的,但是要有对于的出口
 	printf("haha\n");//相当于时空门有人口出口
 
	next:
 	printf("跳过了haha的打印\n"); 
 return 0;
}

goto 语句如果使⽤的不当,就会导致在函数内部随意乱跳转,打乱程序的执⾏流程,所以我们的建
议是能不⽤尽量不去使⽤;但是 goto 语句也不是⼀⽆是处,在多层循环的代码中,如果想快速跳出
使⽤ goto 就⾮常的⽅便了。

如:

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

本来 for 循环想提前退出得使⽤ break ,⼀个 break 只能跳出⼀层 for 循环,如果3层循环嵌套
就得使⽤3个 break 才能跳出循环,所以在这种情况下我们使⽤ goto 语句就会更加的快捷。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

再无B~U~G

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

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

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

打赏作者

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

抵扣说明:

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

余额充值