8.循环

课程推荐视频:https://edu.51cto.com/sd/1d294

8.1 循环

有的时候,我们可能需要多次执行同一块代码。一般情况下,语句是按顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。

循环类型

描述

while 循环

当给定条件为真时,重复语句或语句组。它会在执行循环主体之前测试条件。

for 循环

多次执行一个语句序列,简化管理循环变量的代码。

do...while 循环

除了它是在循环主体结尾测试条件外,其他与 while 语句类似。

嵌套循环

您可以在 while、for 或 do..while 循环内使用一个或多个循环。

8.2 C while 循环

只要给定的条件为真,C 语言中的 while 循环语句会重复执行一个目标语句。

8.2.1 语法

C 语言中 while 循环的语法:

while(condition){statement(s);}

在这里,statement(s) 可以是一个单独的语句,也可以是几个语句组成的代码块。condition 可以是任意的表达式,当为任意非零值时都为 true。当条件为 true 时执行循环。当条件为 false 时,退出循环,程序流将继续执行紧接着循环的下一条语句。

8.2.2 流程图

在这里,while 循环的关键点是循环可能一次都不会执行。当条件为 false 时,会跳过循环主体,直接执行紧接着 while 循环的下一条语句。

8.2.3 实例

#include intmain (){/* 局部变量定义 */inta =10;/* while 循环执行 */while(a <20){printf("a 的值:%d\n", a);a++;}return0;}

当上面的代码被编译和执行时,它会产生下列结果:

a 的值: 10

a 的值: 11

a 的值: 12

a 的值: 13

a 的值: 14

a 的值: 15

a 的值: 16

a 的值: 17

a 的值: 18

a 的值: 19

8.3 do...while 循环

不像  while 循环,它们是在循环头部测试循环条件。在 C 语言中,do...while 循环是在循环的尾部检查它的条件。do...while 循环与 while 循环类似,但是 do...while 循环会确保至少执行一次循环。

8.3.1 语法

C 语言中 do...while 循环的语法:

do{statement(s);}while(condition );

请注意,条件表达式出现在循环的尾部,所以循环中的 statement(s) 会在条件被测试之前至少执行一次。如果条件为真,控制流会跳转回上面的 do,然后重新执行循环中的 statement(s)。这个过程会不断重复,直到给定条件变为假为止。

8.3.2 流程图

8.3.3 实例

#include

int main ()

{

/* 局部变量定义 */

int a = 10;

/* do 循环执行,在条件被测试之前至少执行一次 */

do

{

printf("a 的值:%d\n", a);

a = a + 1;

}while( a < 20 );

return 0;

}

当上面的代码被编译和执行时,它会产生下列结果:

a 的值: 10

a 的值: 11

a 的值: 12

a 的值: 13

a 的值: 14

a 的值: 15

a 的值: 16

a 的值: 17

a 的值: 18

a 的值: 19

8.4 for 循环

for 循环允许您编写一个执行指定次数的循环控制结构。

8.4.1 语法

C 语言中 for 循环的语法:

for ( ini t; condition; increment ){   statement(s);}

下面是 for 循环的控制流:

  1. init 会首先被执行,且只会执行一次。这一步允许您声明并初始化任何循环控制变量。您也可以不在这里写任何语句,只要有一个分号出现即可。

  2. 接下来,会判断 condition。如果为真,则执行循环主体。如果为假,则不执行循环主体,且控制流会跳转到紧接着 for 循环的下一条语句。

  3. 在执行完 for 循环主体后,控制流会跳回上面的 increment 语句。该语句允许您更新循环控制变量。该语句可以留空,只要在条件后有一个分号出现即可。

  4. 条件再次被判断。如果为真,则执行循环,这个过程会不断重复(循环主体,然后增加步值,再然后重新判断条件)。在条件变为假时,for 循环终止。

8.4.2 流程图

8.4.3 实例

实例

#include <stdio.h>  int main (){   /* for 循环执行 */   for( int a = 10; a < 20; a = a + 1 )   {      printf("a 的值:%d\n", a);   }   return 0;}

当上面的代码被编译和执行时,它会产生下列结果:

a 的值: 10

a 的值: 11

a 的值: 12

a 的值: 13

a 的值: 14

a 的值: 15

a 的值: 16

a 的值: 17

a 的值: 18

a 的值: 19

8.5 嵌套循环

C 语言允许在一个循环内使用另一个循环,下面演示几个实例来说明这个概念。

C 语言中 嵌套 for 循环 语句的语法:

for (initialization; condition; increment/decrement)

{

   statement(s);

   for (initialization; condition; increment/decrement)    {

       statement(s);

       ... ... ...

   }

   ... ... ...

}

C 语言中 嵌套 while 循环 语句的语法:

while (condition1){    statement(s);    while (condition2)    {        statement(s);        ... ... ...    }    ... ... ...}

C 语言中 嵌套 do...while 循环 语句的语法:

do{    statement(s);    do    {        statement(s);        ... ... ...    }while (condition2);    ... ... ...}while (condition1);

关于嵌套循环有一点值得注意,您可以在任何类型的循环内嵌套其他任何类型的循环。比如,一个 for 循环可以嵌套在一个 while 循环内,反之亦然。

8.5.3 实例

下面的程序使用了一个嵌套的 for 循环来查找 2 到 100 中的质数:

for 嵌套实例

#include <stdio.h>  int main (){   /* 局部变量定义 */   int i, j;   for(i=2; i<100; i++)   {      for(j=2; j <= (i/j); j++)         if(!(i%j)) break; // 如果找到,则不是质数      if(j > (i/j))         printf("%d 是质数\n", i);   }   return 0;}

当上面的代码被编译和执行时,它会产生下列结果:

2 是质数

3 是质数

5 是质数

7 是质数

11 是质数

13 是质数

17 是质数

19 是质数

23 是质数

29 是质数

31 是质数

37 是质数

41 是质数

43 是质数

47 是质数

53 是质数

59 是质数

61 是质数

67 是质数

71 是质数

73 是质数

79 是质数

83 是质数

89 是质数

97 是质数

while 嵌套实例

#include <stdio.h>

int main()

{

int i=1,j;

while (i <= 5)

{

j=1;

while (j <= i )

{

printf("%d ",j);

j++;

}

printf("\n");

i++;

}

return 0;

}

当上面的代码被编译和执行时,它会产生下列结果:

1

1 2

1 2 3

1 2 3 4

1 2 3 4 5

do-while 嵌套实例

#include <stdio.h>

int main()

{

int i=1,j;

do

{

j=1;

do

{

printf("*");

j++;

}while(j <= i);

i++;

printf("\n");

}while(i <= 5);

return 0;

}

当上面的代码被编译和执行时,它会产生下列结果:

*

**

***

****

*****

循环求100内质数 php_C8循环相关推荐

  1. 大数据学习第四天-求100内质数和

    求1-100之间的质数和 public static void main(String[] args) {int sum=0;for (int i = 2; i <= 100; i++) {bo ...

  2. c语言求100内素数

    求100内素数这里两种赋值方法(解析都在注释里面,源码都放下面了): 一:代码解析 源码: //输出100内素数 #include<stdio.h> int main() {int i,j ...

  3. 100内质数算法,总是遇到这道题,有那么神奇吗

    2019独角兽企业重金招聘Python工程师标准>>> import java.util.ArrayList; import java.util.List;/*** Created ...

  4. while循环——求100以内偶数和

    1 问题 求100以内的偶数和. 2 方法 public class EvenNumber{ public static void main(String[] args){ int i = 1; in ...

  5. 使用三种常见循环求100以内2的倍数和、100以内3的倍数和

    1.求100以内2的倍数和 (1)for循环 // 100以内,2的倍数和2550 var sum = 0;for (var i = 0; i <= 100; i++) {if (i % 2 = ...

  6. 如何用while;do-whlie;for循环寻找100以内质数喵

    #include <iostream> #include <cmath> using namespace std; while循环: int main() { int i,j, ...

  7. 用python二重循环求成绩表_python的循环

    python的循环 编写程序时经常有代码需要重复运行,python提供了while和for进行循环操作. 一.while循环 1.while循环可以根据条件进行判断,决定是否要循环执行语句块,语法如下 ...

  8. java输出100内质数,计算数量,输出美观,两种输出顺序

    代码:(亲写有效)标注.解释,非常清晰,适合小白,另有缩减运行时间的优化版 1.普通版,输出形式:质数从大到小输出 class dada{ public static void main(String ...

  9. python求100以内质数以及合数

    质数有哪些?如何用python求质数?合数有哪些?这一次,我们做一个100以内质数生成器吧! z=[]#质数列表 h=[]#合数列表 for i in range(2,100+1):#循环2-100a ...

最新文章

  1. 调试模式和定时器,看门狗和嘀嗒定时器
  2. MIT提出Liquid机器学习系统,可像液体一样适应动态变化
  3. memcached全面剖析–3.memcached的删除机制和发展方向
  4. git学习:关于origin和master,自己增加一部分
  5. c语言 搜索题油田问题,HDU1241 经典油田问题(BFS)
  6. 基于Jenkins的持续交付全流程设计与实践
  7. 设计模式C++实现(2)——单例模式
  8. java 窗口线程_Java 窗体与线程问题
  9. 程序员面试 IT 公司,这些细节一定要注意!
  10. Node.js:中间件——express简单的错误处理日志中间件
  11. 网友热爱的截图软件--Sinpaste
  12. 【必看】线性代数保研知识点总结|2021计算机软工保研|夏令营预推免面试
  13. *(uint32_t *)(PERIPH) == GPIOX)
  14. 大数据之Python实现每日钉钉数据自动推送
  15. DSL(domain specific language )
  16. 干货 | 何延哲:App个人信息安全治理的规则、案例与思考
  17. 每年的风能部署必须增长四倍,才能到2050年实现净零排放
  18. XSS-labs通关游戏
  19. H3 R4900 G3装系统详细步骤
  20. 神经系统疾病题库【1】

热门文章

  1. submit提交判断
  2. 和李洪强一起学设计01 PS第一天
  3. linux 新建用户(添加ssh用户两者方式一样)
  4. 医疗安全监控与检测平台WattsUpDoc
  5. json - 使用 json-lib
  6. oracler日期函数相差六个月_Oracle数据库之SQL单行函数---日期函数集锦
  7. php 时间戳 时区,PHP时间函数 时间戳 设置时区
  8. java复合设计模式,Java – 复合设计模式和空覆盖
  9. PHP邮件队列,php群发邮件,用数据库做邮件队列
  10. transactionscope 中的异步 处理 异常_协程中的取消和异常 | 异常处理详解