600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 【C语言】循环语句(while语句 do-while语句 for语句)控制循环语句(continue语句 break语句)

【C语言】循环语句(while语句 do-while语句 for语句)控制循环语句(continue语句 break语句)

时间:2022-10-11 01:15:23

相关推荐

【C语言】循环语句(while语句 do-while语句 for语句)控制循环语句(continue语句 break语句)

​​​​​​​​​​​​​​

或许不是今天,或许不是明天,或许不是下个月,但是,有一件事是确定的,有一天我肯定会成为冠军。—莫雷诺

目录

C语言循环结构的三种循环语句

1、for语句语句循环结构

1.1for语句的循环结构

1.2for语句的执行步骤

1.3for语句里的break和continue

1.4练习

1.4.1练习1

1.4.2练习2

2、while语句循环结构

2.1while语句的结构​​​​​​​

2.2while语句的执行步骤

2.3while语句中的break和continue

2.4练习

2.4.1练习

3、do-while语句循环结构

3.1do-while语句执行步骤

3.2do-while语句中的break和continue

控制循环结构的两个语句

1、break语句

2、continue语句

3、嵌套循环

练习

1、计算n的阶乘

2、计算1!+2!+3!+...+10!

3、尝试用键盘读入一个字符,然后在屏幕上显示一个用这个字符填充的对角线长5个字符,倾斜放置的菱形

C语言循环结构的三种循环语句

在日常生活中我们许多事物离不开循环。像超市的收银系统,学校的学生管理系统等。都是重复一些类似的操作来录入信息,这时候就需要用到循环控制语句完成。下面我就来介绍这几种循环语句:

1、for语句语句循环结构

1.1for语句的循环结构

🤼‍♀️通过以下程序来看下它的结构:

//for语法结构#include <stdio.h>int main(){for(表达式1;表达式2;表达式3){循环体;}}

表达式1是程序始初我们定义的值,它经过循环过后会改变我们称之循环变量表达式2根据条件来判断true或false(继续或结束程序)我们称之为循环判断表达式3它也会随着程序的运行不断自增,我们也称它为循环变量循环体内容一般就是我们要求的内容也就是程序的目的

for语句流程图:

1.2for语句的执行步骤

//for语法结构#include <stdio.h>int main(){for(表达式1;表达式2;表达式3){循环体;}}

执行步骤

第一,给表达式1进行循环变量初始化,表达式2设置循环终止条件,表达式3设置循环变量增量或减量;

第二,执行表达式2,判断结果为true(真),则进入表达式3循环变量增量或减量,否则为false(假)退出循环;

第三,执行循环体内容;

第四,转入第二步;

注意🥊🥊🥊

for语句里面的每个表达式都用英文分号;隔开

例子:求0的9的和

//求0到9的和#include<stdio.h>int main(){int s = 0;for (int i = 0; i < 10; i++){s += i;}printf("%d\n", s);return 0;}

输出:45

第一次:i=0;i<10;i++,执行循环体内容,此时s=0;

第二次:i=1;i<10;i++,执行循环体内容,此时s=1;

此处省略多次

最后一次:i=10;i!<9,退出循环,此时s=45;

我们可以理解为每一次判断过后,i都要自增。自增后的i作为下一次判断条件,直到判断终止。

1.3for语句里的break和continue

首先我们要了解到break和continue的用法。在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。而continue则是退出本次循环,不终止循环,继续下一次循环。

🤼我们来看break在for语句中的用法:

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

输出:1 2 3 4

这个程序比较容易理解,循环体内输出4次i后,i自增到5。if语句判断i==5为正则运行break语句,退出了整个循环。

🤼‍♀️continue在for语句中的用法:

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

输出:1 2 3 4 6 7 8 9 10

可以看到,与break不同之处是。当i自增到5时候,continue语句执行退出了当次的循环后,for语句还并未结束。所以输出的结果也是截然不同的。

相信大家都已经懂得了for循环的结构、运行流程和for中break和continue的用法,我们来练习一下吧。

1.4练习

1.4.1练习1

🤼有以下程序输出的结果是什么

#include <stdio.h>int main(){int a = 0, b = 0;for (a = 1, b = 1; a <= 100; a++){if (b >= 20) break;if (b % 3 == 1){b = b + 3;continue;}b = b-5;}printf("%d\n", a);return 0;}

输出: 8

第一次循环:a = 1,b=1->b<20,if不成立,b%3==1%3==1成立,b=b+3, 此时b的值为4

第二次循环:a = 2,b=4->b<20,if不成立,4%3==1成立,b=b+3, 此时b的值为7

第三次循环:a = 3,b=7->b<20,if不成立,7%3==1成立,b=b+3, 此时b的值为10

第四次循环:a = 4,b=10->b<20,if不成立,10%3==1成立,b=b+3, 此时b的值为13

第五次循环:a = 5,b=13->b<20,if不成立,13%3==1成立,b=b+3, 此时b的值为16

第六次循环:a = 6,b=16->b<20,if不成立,16%3==1成立,b=b+3, 此时b的值为19

第七次循环:a = 7,b=19->b<20,if不成立,19%3==1成立,b=b+3, 此时b的值为22

第八次循环:a = 8,b=22->b>20,if成立,循环break提出

最后打印a:8

1.4.2练习2

🤼‍♀️找到10个数里面最大的值使用for循环

#include<stdio.h>int main(){int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };int rat = sizeof(arr) /sizeof(arr[0]);int max = 0;for (int i = 0; i < rat; i++){if (arr[i] > max)max = arr[i];}printf("%d\n", max);return 0;}

输出:10

sizeof是求字节数,sizeof(arr)求出arr数组总字节数,sizeof(arr[0])求出arr单个元素字节数。那么sizeof(arr) /sizeof(arr[0])就是arr数组的长度了。

上述程序 ,输出的结果是正确的。但这个程序是由漏洞的,这个程序固定设计了十个整数。那么自行输入呢。输入的数可以是整数、负数。那时候,最大的值该怎么求呢?

🥊我们可以这样改:

#include<stdio.h>int main(){int n = 0;int arr[10] = {0};int rat = sizeof(arr) / sizeof(arr[0])-1;for (int i = 0; i < rat; i++){scanf("%d ", &arr[i]);}int max = arr[0];for (int j = 0; j < rat; j++){if (arr[j] > max)max = arr[j];}printf("%d\n", max);}

输入:-1 -2 -3 -4 -5 -1 -6 -10 -9 -10

输出:-1

我们可以看到上述程序中的max=arr[0]了,防止我输入的全都是负数,因此我干脆将第一个元素先最为最大值。

2、while语句循环结构

2.1while语句的结构​​​​​​​

//while语法结构#include <stdio.h> int main(){ 表达式1;while (表达式2) {语句;表达式3;}}

注意🥊🥊🥊不知道各位发现没有for语句与while语句有着同工异曲之处。那么如果我们会了for语句或者while语句其中一个是不是就掌握了两种语句呢?

while流程图 :

2.2while语句的执行步骤

//while语法结构#include <stdio.h> int main(){ 表达式1;while (表达式2) {语句;表达式3;}}

执行步骤:

第一,给表达式1进行循环变量初始化,表达式2设置循环终止条件,表达式3设置循环变量增量或减量;

第二,执行表达式2,判断结果为true(真)执行语句,否则为false(假)退出循环;

第三,表达式3循环变量增量或减量

第四,转入第二步;

while语句我们理解为先判断再执行

例子:求0到9的和

//求0到9的和#include <stdio.h>int main(){int i = 0;int s = 0;while (i < 10){s = s + i;i++;}printf("%d\n", s);return 0;}

输出:45

和for语句执行的结果一样都是45,我们可以认为掌握for语句后就掌握了while语句,所以for语句与while语句有着同工异曲之处。

2.3while语句中的break和continue

上面已经讲到了break和continue的区别

🤼那么break在while中的用法:

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

输出:1 2 3 4

和刚刚讲解for的语句一样,输出4次i的值,当i自增到5时,满足了if判断为真执行break语句退出整个循环。

🤼‍♀️continue在while中的用法:

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

输出:1 2 3 4 光标一直闪烁

与for语句中不同的是,i自增的位置发生了改变。导致每次退出的时候i始终是=5,所以if判断一直是真就一直执行continue语句。最终导致程序不能终止。

2.4练习

2.4.1练习

🤼打印数字字符个数跳过其余字符​​​​​​​

#include <stdio.h>int main(){char ch = '\0';while ((ch = getchar()) != EOF){if (ch < '0' || ch > '9')continue;putchar(ch);}return 0;}

输入:abcd1234fafa567​​​​​​​

输出:1234567

EOF文件结束标志,我们理解EOF=-1

||是或的意思​​​​​​​

3、do-while语句循环结构

这里我们可以引用一句话:“东厂不敢杀的人我杀,东厂不敢管的事我管。一句话,东厂管得了的我要管,东厂管不了的我更要管,先斩后奏,皇权特许!”开个玩笑,其实这句话没什么用。主要是显现出do它不管后面的while满不满意先做了再说。

3.1do-while语句执行步骤

#include <stdio.h>int main(){表达式1;do{语句; 表达式2;}while(表达式3);return 0;}

先执行循环里面语句和表达式2,在判断表达式3。因此我们理解do-while为先执行再判断

do-while流程图 :

🥊我们直接来看代码:

//简单的while循环#include <stdio.h>int main(){int a = 0;int b = 1;do{a = a + b;b++;printf("%d ", a);} while (a<100);printf("\n");return 0;}

输出:1 3 6 10 15 21 28 36 45 55 66 78 91 105

我们可以看到,最后一次结果为105,超出了a<100。可见do-while确实是先执行循环体后判断。

3.2do-while语句中的break和continue

🤼break语句在do-while中的用法:

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

输出:1 2 3 4

与上面for循环,while循环都有一样,输出4次i,i自增到5满足if判断语句退出循环。可见判断语句在程序中的重要性。

🤼‍♀️continue语句在do-while中的用法:

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

输出:1 2 3 4 光标闪烁不停

do-while语句中的continue语句跟上面while程序中continue语句功能是一样的。都是每次退出的时候i始终是=5,所以if判断一直是真就一直执行continue语句。最终导致程序不能终止。

控制循环结构的两个语句

1、break语句

beeak语句我们理解为退出循环,结束程序。

🤼我们直接看代码:

执行break操作,跳出所在的当前整个循环,到外层代码继续执行。

执行break操作,跳出所在的当前整个循环,到外层代码继续执行。可以跟上述continue语句对比。

2、continue语句

continue语句咱们理解为退出本次循环,继续执行程序。

🤼‍♀️咱们直接看代码:

执行continue操作,跳出本次循环,从下一个迭代继续运行循环,内层循环执行完毕,外层代码继续运行。

上面可以看两个不同的语句实现同一种功能,都跳过了3然后继续打印下个一个数字直到程序结束。

3、嵌套循环

嵌套循环:将一个循环结构A声明在另一个循环结构B的循环体中,就构成了嵌套循环

🤼最经典之一的嵌套循环有9*9乘法口诀,来吧展示:

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

可以看到结果非常的漂亮:

C语言循环结构语句,控制循环语句你会了吗?

总结

1、while语句先判断后执行2、do-while语句先执行后判断(先斩后奏)3、for语句跟while语句有着同工异曲之处4、break语句退出本次循环结束程序5、continue语句退出本次循环继续执行程序

练习

1、计算n的阶乘

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

输入:5

输出:120

2、计算1!+2!+3!+...+10!

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

输入:6

输出:873

3、尝试用键盘读入一个字符,然后在屏幕上显示一个用这个字符填充的对角线长5个字符,倾斜放置的菱形

#include<stdio.h>int main(){int i,j,k,n;n=3;char a;scanf("%c",&a);for(i=1;i<=n;i++){for(j=0;j<n-i;j++)printf(" ");for(k=0;k<2*i-1;k++) printf("%c",a);printf("\n");}for(i=1;i<n;i++){for(j=0;j<i;j++)printf(" ");for(k=0;k<2*(n-i)-1;k++)printf("%c",a);printf("\n");}return 0;}

输入:*

输出:

本期博客到这就结束,如有帮助还请给博主点个小小的关注

“我真的恨死训练了。但我告诉自己,‘别放弃,忍受当下的苦,然后这辈子都像一个冠军一样活着。’”——阿里

这个是拳击哥的博客主页

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。