小甲鱼C语言第五章-循环结构
第5章C语言程序设计的循环结构
5.8 循环结构程序设计实例
【例5-15】计算1-1/2+1/3+…-1/n-1+1/n的结果。 【例5-16】求1+2+3+…+n<m中最大的n值,并求和。 【例5-17】是一个按照规律翻译密码的例子。程序描述:翻译密
码的规律是将每一个字母变成它后面的字母,如将A变成B,Z变成 A,非字母字符不变,‘!’作为电文结束标志。例如,有一电文 “right”,翻译成“sjhiu”。 【例5-18】 花100块钱买100斤蔬菜。程序描述:西红柿每斤5元, 黄瓜每斤3元,白菜3斤一元,问100块钱买100斤蔬菜有几种解法。
(2)用while和do-while循环时,循环变量初始化的操作应在while和 do-while语句之前完成。而for语句可以在< expression-1>中实现循环 变量的初始化。
(3)for、while属“当型”循环,先判断,后执行循环体。因此当条件 一开始就不成立时,循环体就一次也不执行。这两种循环可以互相取代。 而do–while循环属“直到型”循环,先执行循环体,后判断。因此无论 条件是否成立,循环体至少要执行一次。
5.2.1 while循环的基本语法 5.2.2 while循环的使用实例
3
5.2.1 while循环的基本语法
while循环语句用来实现“当型”循环结构。while循环的一般格 式如下所示: while(<condition>) { <可执行语句序列> }
4
5.2.2 while循环的使用实例
21
5.9 小结
循环结构是C语言程序设计中一种非常重要的编程结构,用于让计 算机反复执行,完成大量类同的计算。主要包括while结构、dowhile结构、for结构和goto语句实现的循环结构,这4种结构可以 嵌套使用。本章主要讲述了这4种循环结构的语法和使用,并对这 4种循环结构进行了对比。
C语言--第五章 循环结构程序设计
5.4 几种循环的比较
(1)三种循环都可以用来处理同一问题,一般情 况下它们可以互相代替。 (2)在while循环和do-while循环中,只在while 后面的括号内指定循环条件,因此为了使循 环能正常结束,应在循环体中包含使循环趋 于结束的语句(如i++,或i=i+1等)。
5.4 几种循环的比较
作用为结束本次循环,即跳过循环体中下面 尚未执行的语句,接着进行下一次是否执行 循环的判定. 一般形式: continue;
5.5 break语句和continue语句
continue和break的区别 break语句则是结束整个循环 过程,不再判断执行循环的条 件是否成立。 while(表达式1) for
5.2 用do-while语句实现循环
例5.2求1+2+...+n的值 #include <stdio.h> main() { int i,n,sum; printf(“n=”); scanf(“%d”,&i); sum=0; do { sum=sum+i; i++; } while (i<=10); printf(“sum=%d”,sum); }
第五章
主要内容
5.1 用while循环 6.4 用do-while语句实现循环 6.5 用for 语句实现循环 6.6 循环的嵌套 6.7 几种循环的比较 6.8 break语句continue和语句 6.9 程 序 举 例
5.1
用while语句实现循环
while语句用来实现“当型”循环结构 。
可以看到当输入i<=10,二者结果一样。 对于while循环,一次也不执行循环体 。而对do-while来说要执行一次。 因此用do-while循环时,应将条件取反 。把例5.2中的i<=10改为i>10。只有这 样才是对同一问题的两种表述。
C语言程序设计第5章-循环结构程序设计ppt课件
while(i<=k && !flag)
if(n % i==0) flag=1;
else i=i+1;
if(!flag)
printf("%d is a prime
number.\n",n);
else
printf("%d is not a prime
number.\n",n);
}
.
返回本章首页
第5章 循环结构程序设计
【例5_1】用while语句求p=n!
#include<stdio.h>
int main()
{ int i=1,p=1; //循环初始化部分 while(i<=5) //循环控制部分
{ p=p*i; //循环体语句 i++; //循环修改部分
}
printf("5!=%d\n",p);
return 0;
10-3,则再执行循环体,把 term 值赋给term1.然后再累加 到s中去。可以看出:程序中 term1代表当前要累加的项, term代表下一项,如果这两项 之差未超过10-3,就将下一项 加到s 中。
C语言 第5章
5.2.1 break语句 break语句
使用break语句实现偶数求和问题。 语句实现偶数求和问题。 例5-7 使用 语句实现偶数求和问题 main() { int n,sum=0; while(1) { printf("Input a number: "); scanf("%d",&n); if(n==-1) /* 当n为-1时,执行 语句, 为 时 执行breek语句,结束循环 */ 语句 break; if(n%2==0) sum=sum+n; } printf("SUM=%d\n",sum); }
5.2.2 continue语句 continue语句
之间的不能被3整除的数输出 例5-8 把100~200之间的不能被 整除的数输出。 ~ 之间的不能被 整除的数输出。 main() { int n; for(n=100;n<=200;n++) { if(n%3==0) /* 当n能被 整除时,执行 能被3整除时 能被 整除时, continue */ continue; printf("%5d",n); , } }
5.1.2 do-while语句 do-while语句
一般形式 do{ 循环体语句组 }while(表达式 表达式); 表达式 执行过程 do-while循环与 循环与while循环的不同 循环与 循环的不同 在于:前者先执行循环体 前者先执行循环体,然后再判 在于 前者先执行循环体 然后再判 断表达式是否为真( 断表达式是否为真(非0), 如果为 ) 真则继续循环;否则终止循环。 真则继续循环;否则终止循环。因 此, do-while循环至少要执行一次 循环至少要执行一次 循环体语句。 循环体语句。
C语言 第5章 循环结构
C语言 第5章 循环结构
• 可以这样实现: int product; product =1*2*3*4*5 ;
• 如果问题变为:求1*2*3* … *10000?
• 该问题无法用一个赋值语句实现!
2
C语言 第5章 循环结构
学习三种结构的程序设计方法 ➢ 顺序结构程序设计 ➢ 选择结构程序设计
1. 计算表达式的值; 2. 当表达式的值为非0时,反复执行while中的
语句; 3. 当表达式的值为0时,while循环结束。
功能:while 语句用来实现“当型”循环。
9
while 语句执行流程:
开始下一 次循环
循环入口
特点:先判断,后 执行;若条件不成 立,则有可能一次 也不执行。
0
表达式=?
23
C语言 第5章 循环结构
(1)求出它是几位数; a) 用num 描述正整数m的位数,初值0为 b) 当m >0 时,开始统计m的位数while(m>0) 因为m>0,m至少有一位,num++; 然后把m的个位去除; m=m/10; 再判断m是否仍然>0; 当循环结束时,即: m等于0; 结果:num的值即为m的位数;
24
25
பைடு நூலகம்6
C语言 第5章 循环结构
(2)分别正向打印出每一位数字;
a) 首先应求出m的位数num;
b) 然后从最高位开始输出;
c) 最高位为:m/10num-1;
m%10num-1;
d) 除了最高位以外,其他的部分为:
e) 循环直到最后一位输出结束。
27
C语言 第5章 循环结 构
(3)逆序打印出各位数字; a) 从最低位开始输出; b) 最低位为:m%10; c) 除去最低位,其它的部分为:m/10; d) 循环,直到最高位输出结束。
小甲鱼C语言第五章-循环结构
6.1 while 语句
while 是 C 语言的关键字,在英语当中,while 一般被翻译成:当……时候, 那么这个句子在生活中是很常用的,当我手里有 100 万闲钱的时候,那么我就捐 出 50 万。我们可以看到,这句话可以提供一种条件以供参考。 C 语言中所有循环的操作中,while 语句是最简单也是最基本的。while 语 句的格式如下所示: while(表达式) { 执行语句 } 其中 while 后面圆括号内的表达式是可以是任意表达式, 圆括号后面大括号 里的语句是要循环的执行语句,我们大括号括起来的内容为循环体。 执行 while 语句的时候, 首先计算圆括号内的条件表达式的值。如果值不为 零(即真值) ,那么执行循环体,接着再次判定表达式。这个过程(判定圆括号 内的值,再执行循环体)持续进行直到圆括号内的值变成零(即假值)才停止。 然后去执行 while 语句后面的内容。 例 6.0.1 计算 1 到 5 的累加和。 #include<stdio.h> main() { int i=1,s=0;
无效的。事实上,do 语句本质上就是 while 语句,只不过它的控制表达式实际 上是在每次执行完循环体之后进行判定的。它的使用格式如下: do { 语句 }while(表达式); 注意:这里的 while(表达式)后面是有分号的。 注意:这里的 while(表达式)后面是有分号的。 注意:这里的 while(表达式)后面是有分号的。 (小甲鱼觉得这里需要强调三次! ! ! ) do 在英文中的意思就是做。那么就意味着 do 语句中的循环体必须是先循环 一遍,然后用 while 进行判定是否继续循环。 我们经常会遇到当我们登录某个网站的时候,刚开始要你输入密码,如果不 正确,就要重新输入。下面的例子就是小小的模仿了一下这样的功能: 例 6.0.2 判断数据正确性 #include<stdio.h> int main() { int check; do { printf("请输入一个整数用来判断是否大于 100\n"); scanf("%d",&check); }while(check<100); printf("您输入的值为%d,是大于 100 的\n",check); return 0; } 当我们输入一些小于 100 的数值的时候,其结果是这样的:
c语言第5章循环结构程序设计课件
第五章 循环结构程序设计
典型例题(例5-8) :求两个整数的最大公约数、最小公倍数
12 8 4 mn r
84
0
mn r
最大公约数 4 最小公倍数 12*8/4=24
求最大公约数的N-S流程图
辗转相除法
7
第五章 循环结构程序设计
void main( )
{ int n, m, nm, r, t; printf( " Enter m, n= ? " ) ; scanf( " % d% d" , & m, & n) ; nm= n* m; if ( m< n)
例如: for(i=1;i<=n;) { t=t*i; i++; } (4)可以省略表达式1和表达式3,只有表达式2 , 即只给循环条件。
i=1; for(;i<=n;)
{t=t*i; i++;}
14
第五章 循环结构程序设计
(5) 3个表达式都可省略。 例如: for(;;) 语句 相当于 while(1)语句。
3
第五章 循环结构程序设计
例: 编程序求: s=1+2+3+……+100
main()
{ int s=0,i=1;
while (i<=100) { s=s+i;
思考:如何求n!
i++; }
printf("S=%d",s); }
4
第五章 循环结构程序设计 二、 do...while语句
Do-while语句的一般形式为:
(1) while( ) {… while( ) {…}
C语言程序设计教程(第5版)_第5章_循环结构
b(a<b),求它们之间的几何级数的和,数学表达式
为
:i b
i
ia
分析:
①所求级数和的初值和终值由键盘任意输入;
②题目要求初值a<b,并且a>0,b>0;
③如果a>b,或者输入的值为负数,则程序提示输 入错误,不进行任何计算,直接退出程序。
5.1 for语句
程序流程图: 程序:example5_2.c 思考: ①该算法的缺点; ②设计更好的算法。 ③假如输入的数可以为任意整数,
2.判断<条件表达式>的值。该表达式就是循环条件,若该 表达式的值为“真”,则执行<循环体语句>; 若该表达式的值为“假”,则退出循环,执行循环结构外 的语句。
3.计算<循环表达式>的值。该表达式更新循环控制变量的 值。
4.转第2步。
5.1 for语句
for语句的流程图:
注意: ①若<循环体语句>中有多
ib
如果a≤b,计算i; ia ia
如果a>b,则计算i 。 ib
请设计算法并编写程序验证。
5.1 for语句
例3:编写程序,从键盘输入m和n的值,用符号“*”在屏幕 上打印出如下所示具有m行n列的矩形图案。 ******* ******* ******* ******* ******* ******* ******* *******
5.1 for语句
程序算法流程图如图所示: 程序:example5_4.c 程序特别处理:如果(a>b),
计算(a−b);否则计算(b−a)。 思考: 1.如果每次测试的题目不止10个,
需要怎样修改算法和程序? 2.如果要求程序在结束了一组测
试之后,可以继续进行测试,需 要怎样修改算法和程序? 3.如果要加入两位数的除法计算, 需要怎样修改算法和程序?
C言语课件-第5章 循环结构程序设计
C言语课件-第5章 循环结构程序设计
循环结构的概念
1 基本概念
循环结构是一种程序设计结构,用于重复执 行特定的代码块。
2 分类
循环结构可以分为while循环、do while循环和 for循环。
3 循环流程控制结构
循环结构由控制条件、循环体和循环控制语 句组成。
3 下一学习步骤建议
提供学习者下一步继续深入学习的建议和资源。
4 循环的几种实现方式
循环可以通过不同的控制条件和循环体实现 不同的功能。
while循环
1 语法格式
while(条件表达式) { // 循环语句块
}
2 例子讲解
使用while循环计算1到100的和。
do while循环
1 语法格式
do { // 循环语句块
} while(条件表达式);
2 例子讲解
1 游戏规则
玩家猜测计算机生成的随 机数字,根据提示进行猜 测,直到猜对或者达到最 大次数。
2 代码实现分析
介绍猜数字游戏的代码实 现思路和算法。
3 代码实现细节讲解
详细演示如何使用循环结 构实现猜数字游戏。
小结
1 学习重点回顾
回顾循环结构的概、语法和应用场景。
2 学习难点梳理
梳理学习过程中遇到的难点和需要进一步掌握的知识点。
1 break语句
用于跳出循环体,终止循环的执行。
2 continue语句
用于跳过本次循环的剩余代码,继续下一次 循环。
循环小结
1 循环的优缺点
循环结构可以使代码更简洁、高效,但滥用可能导致逻辑错误和性能问题。
2 循环应用的场景举例
循环结构常用于处理数组、列表、文件等需要重复操作的情况。
c语言课件-第五章-循环结构程序设计
5.5 for语句(当型循环)
例:读程序,判断程序的功能 #include<stdio.h> void main( ) {char c; for(;(c=getchar( ))!=‘\n’;) putchar(c); } 输入ok!<回车>,输出_______
读入一个字符,当它不是回车符就输出.
5.5 for语句(当型循环)
分析:用辗转相除法求最大公约数。
5.3 while语句(当型循环)
5.3 while语句(当型循环)
例:利用while语句计算1+1/2+1/4+1/6…+1/50.
解:观察数列1,1/2,1/4,1/6…,1/50。
分子全部为1,分母除第一项外,全部是偶数。 同样考虑用循环实现。
其中累加器用sum表示(初值设置为第一项1,以 后不累加第一项),循环控制用变量i(i:2-50)控 制,数列通项:1/i。
5.2 goto语句及用goto构成循环
一、goto语句 goto语句的一般形式:goto 语句标号
语句标号:用于定义程序中的某个位置 用标识符表示,不能只用数字
如:goto start(对) goto 20(错)
goto语句的功能是无条件地转到标号所指的语句。
因为滥用goto语句会破坏结构化,所以应该限制 使用goto语句。
i=1 for(; i<=3; )
{ s=s+k; i++; }
i=1 while (i<=3)
{ s=s+k; i++; }
5.5 for语句(当型循环)
(6)表达式2一般是关系表达式或逻辑表达式,但 也可以是数值表达式或字符表达式,只要其值不等于 0就执行循环体。
c语言第五章知识点
c语言第五章知识点C语言第五章知识点C语言是一种高级编程语言,它的第五章主要讲解了C语言中的循环结构和分支结构。
这两种结构是编程中非常重要的基础知识,掌握它们可以让我们更加灵活地编写程序。
一、循环结构循环结构是指在程序中重复执行某段代码的结构。
C语言中有三种循环结构:while循环、do-while循环和for循环。
1. while循环while循环是最基本的循环结构,它的语法格式如下:while (条件表达式){循环体语句;}while循环的执行过程是:先判断条件表达式的值是否为真,如果为真,则执行循环体语句;执行完循环体语句后再次判断条件表达式的值,如果为真,则再次执行循环体语句,以此类推,直到条件表达式的值为假为止。
2. do-while循环do-while循环与while循环的区别在于,do-while循环先执行一次循环体语句,然后再判断条件表达式的值。
它的语法格式如下:do{循环体语句;} while (条件表达式);do-while循环的执行过程是:先执行一次循环体语句,然后判断条件表达式的值是否为真,如果为真,则再次执行循环体语句,以此类推,直到条件表达式的值为假为止。
3. for循环for循环是最常用的循环结构,它的语法格式如下:for (表达式1; 表达式2; 表达式3){循环体语句;}for循环的执行过程是:先执行表达式1,然后判断表达式2的值是否为真,如果为真,则执行循环体语句;执行完循环体语句后再执行表达式3,然后再次判断表达式2的值,以此类推,直到表达式2的值为假为止。
二、分支结构分支结构是指根据条件的不同,执行不同的代码块。
C语言中有两种分支结构:if语句和switch语句。
1. if语句if语句是最基本的分支结构,它的语法格式如下:if (条件表达式){代码块1;}else{代码块2;}if语句的执行过程是:先判断条件表达式的值是否为真,如果为真,则执行代码块1;如果为假,则执行代码块2。
C语言程序设计:第5章循环结构课件教案
C语言程序设计:第5章循环结构课件教案C语言程序设计课件教案第五章循环结构教学目的掌握循环结构中的while语句、do while语句、for语句的用法,掌握中断语句中break和continue语句的用法。
教学要求1.熟练掌握while语句、do while语句、for语句2.熟练掌握break语句、continue语句重点和难点1.while语句、do while语句、for语句的使用2.break语句、continue语句的使用教学支撑环境与教学资源:1.笔记本电脑2.VC20103.投影仪教学方法讲授法、练习法、讨论法授课课时6课时教学过程---------------------------------AM---------------------------------一、课程引入计算1+2+3+...+n有几种方法,需要多少步骤?二、循环结构语句什么时候用到循环结构:处理重复的问题的时候。
循环结构的三大语句:while语句、do while语句、for语句。
1.while语句while(循环条件表达式)循环体语句;执行过程:只有循环条件表达式的值为真就执行循环体语句,先判断后执行。
课堂练习1:1.输出1---n之间的数int main(void){int i = 1;int n = 0;printf("请输入n的值:");scanf("%d",&n);//10 15while(i <= n){printf("%d\n",i);i++;}return 0;}2.计算m+...+n的值int main(void){int i = 1;int n = 0;int m = 0;int sum = 0;printf("请依次输入m和n的值:");scanf("%d%d",&m,&n);//m+...n 10 15 while (m <= n){sum = sum + m;m++;}printf("sum=%d\n", sum);return 0;}2.do...while语句do{循环体语句;}while(循环条件表达式);执行过程:先执行循环体语句,再检查循环条件表达式的值是否为真,如果为真则继续执行循环体语句,否则结束循环。
C语言 第5章 循环结构
(2) 在循环语句嵌套使用的情况下, break语句只能跳出 ) 在循环语句嵌套使用的情况下, 语句只能跳出 或终止)它所在的循环,而不能同时跳出(或终止) (或终止)它所在的循环, 而不能同时跳出(或终止) 多 层循环, 层循环,如: for (…) { for (…) { … break; } … }
while语句 语句
一般形式: 一般形式: while(表达式 表达式) 表达式 循环体语句; 循环体语句; 特点:先判断表达式, 特点:先判断表达式,后执行循环体 说明: 说明: 循环体有可能一次也不执行 循环体可为任意类型语句 下列情况,退出while while循环 下列情况,退出while循环 (1)条件表达式不成立 为零) 条件表达式不成立( (1)条件表达式不成立(为零) (2)循环体内遇 循环体内遇break,return,goto (2)循环体内遇break,return,goto 无限循环: 无限循环: while(1) 循环体; 循环体;
循环条件 sum=0+1 sum==1+2=3 sum=3+3=6 sum=6+4 …… sum=4950+100=5050 循环终值
循环体
从键盘输入一组数据, 结束输入 结束输入, 例 从键盘输入一组数据,以0结束输入,求数据和
/*ch5_11.c*/ #include <stdio.h> main() { int number,sum=0; read_loop: scanf("%d",&number); if(!number) goto print_sum; sum+=number; goto read_loop; print_sum: printf("The total sum is %d\n",sum); }
c语言 第5章 循环结构2
18
第五章 循环结构程序设计
例:设公鸡每只5元,母鸡每只3元,小鸡每元3只, 现用100元钱买100只鸡,编写一程序,算出各买多少 只鸡?
main() { int i,j,k; for(i=0;5*i<=100;i++)
for(j=0;3*j<=100;j++) for(k=0;k/3<=100;k+=3)
{ children=36-men-women;
if ((men*4+women*3+children/2==36)&&(children%2==0))
{ printf("男人数:%d",men);
printf(" 女人数:%d",women);
printf(" 小孩数:%d\n",children);
程序如下: main() {int i,j,s=0; for(i=2;i<=100;i++)
{ for(j=2;j<=i-1;j++) if(i%j==0) break;
if(j>i-1) s=s+i;
} printf("100以内所有素数和为:%d\n",s); }
16
第五章 循环结构程序设计
Fibonacci数列问题
根据题意知,男人为:0~8; 女人为:0~11; 小孩为:36-男-女,但要是2的倍数。
20
第五章 循环结构程序设计
/* EX5-18.C */
main()
{int men,women,children;
C语言循环结构
06 循环控制语句
break语句
功能
在循环语句和switch语句中,break用于跳 出当前循环或switch结构,执行循环或 switch后面的代码。
使用场景
当满足某个条件时,需要立即终止循环的执行,可 以使用break语句。
注意事项
break只能跳出一层循环,如果有多层循环 嵌套,需要使用多个break才能跳出所有循 环。
斐波那契数列算法
斐波那契数列定义
斐波那契数列实现
斐波那契数列案例
斐波那契数列是一个经典的数列,它 的前两个数字是0和1,后面的每个数 字都是前两个数字的和。
使用循环结构,依次计算每个数字的 值,直到达到指定的数列长度。可以 使用两个变量来保存前两个数字的值 ,每次循环计算下一个数字的值,并 更新这两个变量的值。
循环结构作用
提高代码效率
通过重复执行代码,避免重复编写相同的代码段 ,提高程序的可读性和可维护性。
实现复杂功能
循环结构可用于实现各种复杂的功能,如排序、 查找、遍历等。
控制程序流程
循环结构可用于控制程序的执行流程,实现条件 判断、分支执行等。
常见循环类型
for循环
适用于已知循环次数的情况,可方便 地控制循环变量的初始值、增量和终 止条件。
}
```
05 循环嵌套
嵌套概念及作用
嵌套概念
在C语言中,一个循环体内可以包含 另一个完整的循环结构,称为循环的 嵌套。内嵌的循环可以完全包含在另 一个循环中,也可以部分包含。
嵌套作用
通过循环嵌套,可以实现更复杂的控 制流程,解决一些单层循环无法处理 的问题。例如,打印二维数组、进行 复杂的数学计算等。
使用for循环可以控制打印输出的行和列,从而打印出各种图案。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
候,程序依旧没有停止,还在循环,等待我输入一个数据(光标还在闪烁) 。当 我们输入一个大于等于 100 的值呢?其结果如下:
当我们输入了 123,由于 123 是很肯定要大于等于 100 的,所以,while 后 面的条件不成立了,循环终止,执行下面的 printf 语句。 请注意比较 do-while 语句和 while 语句的区别。do-while 语句是先执行后 判断,而 while 是先判断,后执行。也就是说,while 语句的循环体可能一次也 不执行,因为条件可能从医开始就不成立,比如 while(1<0),那么这个 while 语句就始终都不会循环。而 do-while 语句,无论 while 后面的条件是不是成立 的,循环体都至少要被执行一次。鉴于这个区别,如果编写的程序中,有些地方 至少需要执行一次的话,do-while 语句当然是首选。
6.1 while 语句
while 是 C 语言的关键字,在英语当中,while 一般被翻译成:当……时候, 那么这个句子在生活中是很常用的,当我手里有 100 万闲钱的时候,那么我就捐 出 50 万。我们可以看到,这句话可以提供一种条件以供参考。 C 语言中所有循环的操作中,while 语句是最简单也是最基本的。while 语 句的格式如下所示: while(表达式) { 执行语句 } 其中 while 后面圆括号内的表达式是可以是任意表达式, 圆括号后面大括号 里的语句是要循环的执行语句,我们大括号括起来的内容为循环体。 执行 while 语句的时候, 首先计算圆括号内的条件表达式的值。如果值不为 零(即真值) ,那么执行循环体,接着再次判定表达式。这个过程(判定圆括号 内的值,再执行循环体)持续进行直到圆括号内的值变成零(即假值)才停止。 然后去执行 while 语句后面的内容。 例 6.0.1 计算 1 到 5 的累加和。 #include<stdio.h> main() { int i=1,s=0;
++;
i 的值现在为 1--是的 s 现在的值为 1。 i 现在的值为 2--是的,继续。 s 现在的值为 3。 i 的值现在为 3--是的。 s 现在的值为 6,i 现在的值为 4。 i 的值现在为 4--是的。 s 现在的值为 10。 i 的值现在为 5--是的。 s 现在的值为 15。 i 现在的值为 6--不成立,退出循环,
第五章,循环结构
大家好,我是小布丁,很高兴为大家更新第五章。 在生活中,我们要经常重复的去做某件事。比如,每天我们都要睡觉,每天 我们都要吃饭等等。生活当中需要重复去做的事太多了。 当然我们重复去做某件事的时候是要有条件的,比如说我们困了,或者疲倦 了,或者无聊了,我们才去睡觉。当我们饿了,碰到喜欢吃的东西了,我们才 会去吃饭。当我们老去的那一天,这些事情也就不需要做了... 这种循环往复的做某件事的流程,C 语言当中称之为循环结构。也就是说重 复的执行 C 语言中的某段代码。当然,C 语言中的循环也是有条件的,因为如果 没有结束循环的条件,那循环就永远循环下去,就像舒舒服服地躺下去就不起 来了。 本章节中将会详细的介绍 C 语言的循环结构的语法, 使大家对 C 语言的执行 流程有更多的认识。 本章的编写得到了小甲鱼和超级版主故乡的风的宝贵修改建议, 在此表示感 谢。
while(i<=5) { s=s+i; i++; } printf("s 的值为%d\n",s); } 让我们分步骤来看看这段程序中循环体运行的情况。 i =1;s=0; s 现在的值为 0,i 现在的值为 1。 第一次运行循环体: i<=5 成立么? 执行循环体 s=s+i;i 第二次运行循环体: i<=5 成立么? 执行循环体 s=s+i;i 第三次运行循环体: i<=5 成立么? 执行循环体 s=s+i;i 第四次运行循环体: i<=5 成立么? 执行循环体 s=s+i;i 第五次运行循环体: i<=5 成立么? 执行循环体 s=s+i;i i<=5 成立么? 执行后面的输出语句。
刚开始就会提示,要求输入一个整数。在输入之后,while 后面的条件将会 判断这个数值是不是小于 100 的。 在这里我们都输入了小于 100 的值, 所以 while 后面圆括号中的表达式是真的, 所以会重复执行循环体内的内容,也就是会一直 显示“请输入一个整数用来判断是否大于 100” 。我们也看到了,在我截图的时
6.2
do-while 语句
在生活中并不是所有的事情都会一直循环着去做的,就像我们学习一本书, 我们会在一段时间内都在看这本书,在这段时间内,我们可以说是在重复、循环 “看这本书”这件事情,其性质当然也属于循环。但是在看一本书之前,我们是 不是要先看看目录?因为我们需要确定一下这本书以自己目前的水平是否看得 懂,如果看得懂,我们便可以在接下来的时间里一直看这本书,但是如果发现看 目录的时候就看不懂了, 我们还会在接下来的时间里来看这本书吗?我想大部分 人是选择不会的。 在 C 语言中也提供这样的循环语句,也就是说先去运行一段程序,然后判断 条件是不是为真,如果为真,再去循环,如果为假,那么在执行了一次之后,就 退出了这个循环。下面我们就要讲解 do-while 语句的使用。 其实,do 语句,并不能算是一个严格意义上的循环语句。因为,do 语句和 while 语句关系紧密,就像是孪生兄弟一样,形影不离,却又稍微有点不同,就 像是 else 子句的使用时离不开 if 的,如果没有 if,那么就意味着使用 else 是
6.3
fwhile 语句和 do 语句两种,要不然何来多 姿多彩的 C 世界? 接下来, 我们来介绍一下另外一个比较常用的循环语句,也是功能最强大的 语句:for 语句。 for(表达式 1;表达式 2;表达式 3) { 执行语句 } 表达式 1 作为循环结构的初始化,往往都是赋值表达式,设定在循环中需要 用到的或其他变量的初始化。 表达式 2 是作为整个循环的判断条件,一般为关系表达式或者逻辑表达式 表达式 3 的作用是改变需要进行判断的变量的值, 往往为复合赋值表达式或 者自增自减表达式。 注意:for 后面的括号中,各个表达式之间要有分号隔开。for 后面的大括
号称为循环体,循环体内就是需要循环的执行语句,如果为一条语句,可以不写 大括号。 那么整个 for 循环的执行过程又是什么样的呢?
这样用文字的描述, 对 for 循环的理解会有一些不透彻,不要因为 for 语句 表面上的复杂性而灰心,还是要通过例子来理解。还是通过修改例,用 for 语句 来实现。 例 6.0.3 #include<stdio.h> int main() { int i,s=0; for(i=1;i<=5;i++) { s=s+i; } printf("%d\n",s); return 0; } 这段程序同样是运算 1 到 5 的累加。我们来看一下运算的过程、 赋初值:s=0 进入 for 语句,对 i 赋初值 1 判断 i 是否小于等于 5?此时 i 的值为 1 是的:s=s+i; s 现在的值为 1,执行 i++。 判断 i 是否小于等于 5?此时 i 的值为 2 是的:s=s+i; s 现在的值为 3,执行 i++。 判断 i 是否小于等于 5?此时 i 的值为 3 是的:s=s+i; s 现在的值为 6,执行 i++。 判断 i 是否小于等于 5?此时 i 的值为 4 是的:s=s+i; s 现在的值为 10,执行 i++。 判断 i 是否小于等于 5?此时 i 的值为 5 是的:s=s+i; s 现在的值为 15,执行 i++。
无效的。事实上,do 语句本质上就是 while 语句,只不过它的控制表达式实际 上是在每次执行完循环体之后进行判定的。它的使用格式如下: do { 语句 }while(表达式); 注意:这里的 while(表达式)后面是有分号的。 注意:这里的 while(表达式)后面是有分号的。 注意:这里的 while(表达式)后面是有分号的。 (小甲鱼觉得这里需要强调三次! ! ! ) do 在英文中的意思就是做。那么就意味着 do 语句中的循环体必须是先循环 一遍,然后用 while 进行判定是否继续循环。 我们经常会遇到当我们登录某个网站的时候,刚开始要你输入密码,如果不 正确,就要重新输入。下面的例子就是小小的模仿了一下这样的功能: 例 6.0.2 判断数据正确性 #include<stdio.h> int main() { int check; do { printf("请输入一个整数用来判断是否大于 100\n"); scanf("%d",&check); }while(check<100); printf("您输入的值为%d,是大于 100 的\n",check); return 0; } 当我们输入一些小于 100 的数值的时候,其结果是这样的:
++;
++;
++;
++;
那么 s 的值是不是 15 呢?我们来看一下结果
注意:每次执行循环体的时候,都要先判断是不是满足 while 后面圆括号里 面的内容,一旦不满足,就退出循环。 下面就要对一些需要注意的问题做一些解释: 1.while 语句的范围是从 while 语句的开始一直碰到一个分号作为结束,在 语法上来说,while 循环体中只能有一条执行语句,如果需要执行多条语句,那 么就需要用复合语句,也就是用大括号把所有语句都括起来。和 if 语句一样,
判断 i 是否小于等于 5? 不是,跳出循环。 这个顺序是不是有种似曾相识的感觉呢?因为这个顺序就是 while 语句的 运算顺序,很多情况下,for 语句和 while 语句是可以互相换的,for 语句的定 义其实可以转换为 while 语句表示,相当于如下语句: 表达式 1 while(表达式 2) { 循环体 表达式 3 } for 语句中有些表达式是可以省略不写的。严格的说法,并不是省略。只是 按照运行的方式,将顺序改变了而已。例如 for(i=1;i<=5;i++) 可以写成 i=1; for(;i<=5;i++) 也可以变成 for(i=1;i<=5;) i++; 还可以变成 i=1; for(;i<=5;) i++; 如果你看见了 for(;;), 也不要惊讶, 那是因为这个是 for 语句的无限循环。 但是无论你想省略其中的哪一个表达式,其分号还是不能少的,这一点要切记。