系列文章目录
文章目录
- 系列文章目录
- 前言
- `提示:这里可以添加本文要记录的大概内容:` 1.掌握C语言循环结构的基本用法 2.循环包括for循环,while循环,do~循环 3.循环结构使用时所需要注意事项
- 1. for循环
- ,表达式1初始化部分只被执⾏1次,剩下的就是表达式2、循环语句、表达式3在循环。
- 表达式1.2.3都可以省略,但是新手尽量不要省略,以免带来不必要的麻烦
- 2. while循环
- (a)a为真(非零)则循环,a为假(为零)则不执行循环语句,先判断后循环
- 3.do-while循环
- while 和 for 这两种循环都是先判断,条件如果满⾜就进⼊循环,执⾏循环语句,如果不满⾜就跳 出循环; ⽽ do while 循环则是先直接进⼊循环体,执⾏循环语句,然后再执⾏ while 后的判断表达式,表 达式为真,就会进⾏下⼀次,表达式为假,则不再继续循环。
- 所以在 do while 语句中循环体是⾄少执⾏⼀次的,这是 do while 循环⽐较特殊的地⽅。
- 这⾥并⾮必须使⽤ do while 语句,但是这个代码就⽐较适合使⽤ do while 循环,因为n即使是 0,也是1位数,要统计位数的。
- 4.break和continue语句
- • break 的作⽤是⽤于永久的终⽌循环,只要 break 被执⾏,直接就会跳出循环,继续往后执 ⾏。
- • continue 的作⽤是跳过本次循环 continue 后边的代码,在 for 循环和 while 循环中有所 差异的。
- 5. for循环中的break和continue
- 在这⾥我们也可以对⽐⼀下 while 循环和 for 循环中 continue 的区别: ![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/4269d9f109e69bf0d96b8cc215dd5730.png) while中直接跳回判断,而for循环先++在判断
- 6.goto语句实现循环
- goto 语句如果使⽤的不当,就会导致在函数内部随意乱跳转,打乱程序的执⾏流程,所以我们的建 议是能不⽤尽量不去使⽤;但是 goto 语句也不是⼀⽆是处,在多层循环的代码中,如果想快速跳出 使⽤ goto 就⾮常的⽅便了。
- 本来 for 循环想提前退出得使⽤ break ,⼀个 break 只能跳出⼀层 for 循环,如果3层循环嵌套 就得使⽤3个 break 才能跳出循环,所以在这种情况下我们使⽤ goto 语句就会更加的快捷。
前言
提示:这里可以添加本文要记录的大概内容:
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
解析:
- 要想得到n的最低位,可以使⽤n%10的运算,得到的余数就是最低位,如:1234%10得到4
- 要想去掉n的最低位,找出倒数第⼆位,则使⽤ n=n/10 操作就可以去掉最低位的,如:
n=1234/10得到123,123相较于1234就去掉了最低位,123%10就得到倒数第⼆位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 的区别:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/4269d9f109e69bf0d96b8cc215dd5730.png)
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: