第7课 循环语句

循环语句分析:

do...while语句的循环方式:

while语句的循环方式:

for语句的循环方式:

三种循环语句的使用对比:

do...while

当我们给f1的参数是-100时,结果如下:

这不是我们想要的结果,我们希望实参小于0时,f1函数什么都不做,但是这个do...循环却至少执行了一次do中的语句。对程序进行改进。

在坚持要使用do...while循环的前提下我们只能加一个if判断语句,如下:

在做这样的累加操作的时候,do...while并不适合。我们修改成while循环的方式:

while适合求累加和的操作。

下面添加for循环求累加和的程序:

for循环求累加和更加一目了然。for循环是最适合最累加的。

break和continue的区别:

break可以用到switch语句里面,也可以用到循环语句里面,那么continue是否可以用到switch语句中呢?

continue是为循环语句设计的,与分支语句没有任何关系。

示例程序如下:

 1 #include <stdio.h>
 2
 3 void f1(int n)
 4 {
 5     int i = 0;
 6
 7     for(i=1; i<=n; i++)
 8     {
 9         if( (i % 2) == 0 )
10         {
11             break;
12         }
13
14         printf("%d ", i);
15     }
16
17     printf("\n");
18 }
19
20 void f2(int n)
21 {
22     int i = 0;
23
24     for(i=1; i<=n; i++)
25     {
26         if( (i % 2) == 0 )
27         {
28             continue;
29         }
30
31         printf("%d ", i);
32     }
33
34     printf("\n");
35 }
36
37 int main()
38 {
39     f1(10);
40     f2(10);
41
42     return 0;
43 }

第11行的break如果执行到,会直接跳出第7行的for循环。

第28行的continue如果执行到,会跳到下一次for循环,不会跳出for循环,只会跳过31行的打印。

执行结果如下:

do和break的妙用:

示例程序如下:

 1 #include <stdio.h>
 2 #include <malloc.h>
 3
 4 int func(int n)
 5 {
 6     int i = 0;
 7     int ret = 0;
 8     int* p = (int*)malloc(sizeof(int) * n);
 9
10     do
11     {
12         if( NULL == p ) break;
13
14         if( n < 5 ) break;
15
16         if( n > 100) break;
17
18         for(i=0; i<n; i++)
19         {
20             p[i] = i;
21             printf("%d\n", p[i]);
22         }
23
24         ret = 1;
25     }while( 0 );
26
27     printf("free(p)\n");
28
29     free(p);
30
31     return ret;
32 }
33
34 int main()
35 {
36     if( func(10) )
37     {
38         printf("OK\n");
39     }
40     else
41     {
42         printf("ERROR\n");
43     }
44
45     return 0;
46 }

我们让do...while循环只执行一次,free一个NULL指针也是没有问题的。这个do...while循环用break暴力跳出的方式,意义在于强制我们在返回之前一定要释放p所指向的内存。

执行结果如下:

改成下面这种,在条件不成立立即返回的情况:

当我们在main函数中给func传入的数是1000的时候,结果如下:

可以看到这种情况下没有释放指针。

如果在每个不成立的条件后先释放一次指针再返回会使得程序很臃肿。

小结:

  for循环先进行判断再进入循环体

  for循环适合于循环次数固定的场合

  while循环先进行判断再进入循环体执行

  while循环适合于循环次数不定的场合

  do...while循环先执行循环体再进行判断

  do...while循环至少执行一次循环体

原文地址:https://www.cnblogs.com/wanmeishenghuo/p/9533108.html

时间: 2024-10-12 18:16:54

第7课 循环语句的相关文章

第9课 循环语句与注释

一.循环 1.循环的概念 2.while循环: 1)格式:while 条件:(条件要成立--True) 循环语句(循环体) 2)while True:死循环. 用处,如cmd.python shell交互界面或者需要循环多次的时候 while True: pw = input('请输入密码:') if pw == '123456': print('密码正确!') break else: print('密码错误,请重新输入:') # 执行结果 请输入密码:11 密码错误,请重新输入: 请输入密码:

【C语言探索之旅】 第一部分第七课:循环语句

内容简介 1.课程大纲 2.第一部分第七课: 循环语句 3.第一部分第八课预告: 第一个C语言小游戏 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏. C语言编程基础知识 什么是编程? 工欲善其事,必先利其器 你的第一个程序 变量的世界 运算那点事 条件表达式 循环语句 实战:第一个C语言小游戏 函数 练习题 习作:完善第一个C语言小游戏 C语言高级技术 模块化编程 进击的指针,C语言王牌 数组 字符串 预处理 创建你自己的变量类型

JS第二次课(循环语句)

1. 条件语句 1) 比较操作符 == .!=.>.>=.<.<= 转大小写:toUpperCase().toLowerCase() 2) 逻辑运算符 与运算 && 或运算 || 非运算 ! 3)if语句 If(条件) { ….} Else if(条件) {….} Else {….} 例: var iDay=Number(prompt("请输入星期",""));           if(isNaN(iDay))       

10-16C#for...循环语句(2)

for....循环语句 格式:for(初始条件:循环条件:状态改变) { 循环体: } 一.课前作业:打印等腰直角三角形 第一种方法:是运用一开始学习的从上往下执行控制台程序,用一个for循环语句执行,只有一个循环. 第二种方法:利用for嵌套循环语句,就是for循环里面再嵌套一个或多个for语句的小循环组成. (注意:在嵌套循环里面容易犯的错误:外面大的循环条件执行一次之后,光标继续从上往下顺着执行下面的小循环,只要小循环里面的条件符合,就会一直在里面继续执行,只有不满足小循环的循环条件了,光

循环语句6

循环语句C语言 while do-while for goto(无条件循环)1.for循环for(表达式1:表达式2:表达式3){语句}: //条件可以省略,::这两个分号不可以省略//没有条件代表无限循环 表达式1:代表循环条件的初始化. 表达式2:代表控制循环的条件. 表达式3:改变循环变量.使其趋于结束 练习:打印1到10之间的数字for语句的执行过程: 表达式1在循环第一次进入时给循环因子赋值, 仅执行一次;表达式1执行完,就执行表达式2判断 是否为真,为真进入循环体,循环体结束执行 表

单片机c语言教程:C51循环语句

单片机c语言教程第十三课 C51循环语句 循环语句是几乎每个程序都会用到的,它的作用就是用来实现需要反复进行多次的操 作.如一个 12M 的 51 芯片应用电路中要求实现 1 毫秒的延时,那么就要执行 1000 次空语句 才能达到延时的目的(当然能使用定时器来做,这里就不讨论),如果是写 1000 条空语 句那是多么麻烦的事情,再者就是要占用很多的存储空间.我们能知道这 1000 条空语句, 无非就是一条空语句重复执行 1000 次,因此我们就能用循环语句去写,这样不但使程序 结构清晰明了,而且

python基础之条件循环语句

前两篇说的是数据类型和数据运算,本篇来讲讲条件语句和循环语句. 0x00. 条件语句 条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了解条件语句的执行过程: Python interprets non-zero values as True. None and 0 are interpreted as False. Python 判断非0的值为 True, 而None和0被认为是 False.注意这里的True和False首字母大写,Py

循环语句注意事项

三种循环语句的区别? * do...while循环至少执行一次循环体. * for,while循环必须先判断条件是否成立,然后决定是否执行循环体语句. for循环和while循环的区别: *如果你想在循环结束后,继续使用控制条件的那个变量,用while循环,否则用for循环. 不知道用谁就用for循环.因为变量及早的从内存中消失,可以提高内存的使用效率. 需求:在控制台输出所有的"水仙花数"和个数 * 所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身. * 举例:153就是

js中的循环语句

js中的循环语句可分为三种:1.while:2.do……while:3.for. while的语法为 while (exp) {    //statements;} var a=1,b=0; while(a<=1000){ if(a%2==0){ if(b%20==0) { document.write("<br>第"+parseInt(b/20+1)+"行偶数"); } document.write(a+"&nbsp"