剖析:循环结构

剖析:循环结构详细的介绍了循环结构 希望你能喜欢 循环结构

大家好,欢迎来到IT知识分享网。

目录

1.  while  循环

2.  for  循环

3.  do while  循环

4.  while 循环和do while 循环的比较

5.  循环嵌套

6.  break和continue的运用

7.  素数判断

​编辑

8. goto语句

9.  迭代法


生活中很多操作需要重复进行,比如统计50个数据是否过关等等。如果找到一个方法统计完一个数据后,再用这个方法一直去重复49次,过程显得非常冗长,在这种情况下,我们就可以引入一个新方法:循环结构  来解决重复的问题。

1.  while  循环

 while循环会先判断括号内的表达式,如果成立则进行下一步。其实while的用法和if相似,只是在if判断的基础上可以通过i++从而引入一个循环的判断

剖析:循环结构

剖析:循环结构

可以看出其实是等效的,下面是while的运行流程图

剖析:循环结构

我们可以用这种方法判断一个数字的位数

剖析:循环结构

注意,记得给变量赋值,而且需要给到一个停下的条件,不能让循环无限的进行下去

2.  for  循环

for循环的语句更简单,也更常用。for循环的一般形式是for(表达式1;表达式2;表达式3),表达式1一般是变量的定义,表达式2是判断条件,表达式3是循环的调整,比如我们输入100内3的倍数

剖析:循环结构

相对与用其他的方法更简单明了,当然我用一些处理来使得数据看起来更舒服

3.  do while  循环

do while循环也是循环的一种,只不过他一般先进行程序,再判断循环条件是否成立

剖析:循环结构

当然,这个方式的好处是,可以先执行程序,避免省略一些情况

4.  while 循环和do while 循环的比较

while循环是先判断再执行, do while先执行后判断。do while的不同体现在

剖析:循环结构

剖析:循环结构

在这里区别就很明显了,我要求数字要大于10才能打印haha,我输入了6当然不满足条件,while在判断的时候就发现这个命题为假,没有执行,而do while循环先不假思索得打印了haha,然后判断的时候才发现不成立。

5.  循环嵌套

循环嵌套的意思是在循环里面再添加一个循环,比如我打印数组的时候就需要用到这个

剖析:循环结构

剖析:循环结构

6.  break和continue的运用

break可以帮助我们终止进程,continue可以帮助我们跳过下一个进程。直接举例

剖析:循环结构

如果我们引入break

剖析:循环结构

我们就可以在中间i为6的时候终止循环

如果换成continue呢

剖析:循环结构

则会变成跳过打印6的情况,这就是break和continue的运用

7.  素数判断

如果我们想求100到200内的素数,我们该怎么办呢

这时候我们就会想到素数的定义是没有因数,即不能为两个非0或者1的数相乘得到。那么我们可以通过一个循环,一个一个尝试,直到找到一个特例不符合素数的条件然后判断他不是素数

#include <stdio.h> int main() { int a = 0; for (a=100;a<=200;a++) { int b = 0; for(b=2;b<a;b++) { if (a%b==0) { printf("%d\t",a); break; } } } return 0; }

剖析:循环结构

通过这种方法我们可以找出所有的非素数

当然我们可以改进一下,如下

#include <stdio.h> int main() { int a = 0; for (a=100;a<=200;a++) { int c = 1; int b = 0; for(b=2;b<a;b++) { if (a%b==0) { c = 0; break; } } if (c==1) { printf("%d\t",a); } } return 0; }

当我们进行这样的操作后,我开始假设一个变量c为1,如果我判断出这个数字为非素数,那我改变c为0,这样我在后面满足c=1的前提时就不会去打印非素数,剩下的全都是素数。

还有一个优化的方法,比如一个数为16,他为2*8   4*4   8*2,当我们判断的数大于4时就会产生重复,所以我们可以认为如果一个数不能被他的平方根整除,就是素数

#include <stdio.h> #include <math.h> int main() { int a = 0; for (a=100;a<=200;a++) { int c = 1; int b = 0; int d = 0; d = sqrt(a); for(b=2;b<d;b++) { if (a%b==0) { c = 0; break; } } if (c==1) { printf("%d\t",a); } } return 0; }

这样处理完会减少程序的循环与判断次数,让程序运行更快

8. goto语句

goto语句是一种更迅速跳出程序的方法。如果我们位于一个复杂的嵌套循环,一个break只能暂停当前程序,如果真的很复杂我们就需要一堆break,这样我们就可以引入goto语句,可以一步就跳转到外面

剖析:循环结构

一旦我们判断完i为12,直接跳转到goto语句,更快更精确。

9.  迭代法

如果我们已知一个迭代公式,那么我们可以通过迭代的方法一直循环缩小差距,直到将误差降到目标值。

比如我们求平方根公式,他的迭代近似公式为X(n+1)=0.5*(Xn+a/Xn)

#include <stdio.h> #include <math.h> int main() { float a = 0; float X0 = 0; float X1 = 0; printf("输入数字:\n"); scanf("%f",&a) ; X0=a/2; X1=(X0+a/X0)/2; do { X0=X1; X1=(X0+a/X0)/2; } while (fabs(X0-X1)>=1e-5); printf("根号%5.2f的结果是%8.5f\n",a,X1); return 0; } 

通过这个方法,我们得到

剖析:循环结构

剖析:循环结构

对照一下sqrt函数,通过不断的迭代,最终也能实现sqrt函数的效果。

   好了,文章到这边基本上介绍完了常量与变量,作者制作不易,希望能收获你的喜欢和关注 68ffdcfbee5143c49a83a0a878c54c78.png

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/126983.html

(0)
上一篇 2025-09-14 16:15
下一篇 2025-09-14 16:20

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信