第五章 C语言循环结构while 语句
C语言第5章-循环结构程序设计PPT课件
![C语言第5章-循环结构程序设计PPT课件](https://img.taocdn.com/s3/m/e232d0596d175f0e7cd184254b35eefdc9d31556.png)
当i<=10 (直到i>10) 输出sum
#include "stdio.h" int main() {
int i,sum; i=1; sum=0; do { sum=sum+i; i++; }while(i<=10);
至少执 行一次
循环体语句
真 表达式 假
说明
printf("sum=%5d\n",sum); return 0;
7
举例
例5.2 设s=1×2×3×……×n,求s不大于400000时 最大的n。
#include <stdio.h>
int main( )
{ int n=1; long int s=1;
前n项的乘积
P81
while(s<=400000)
{
n=n+1;
s=s*n;
}
printf("不大于400000时的最大n为:%d\ns值为:%ld\n",n-1,s/n);
输入:1 输出:sum=55 输入:11 输出:sum=0
sum=55 sum=11
什么情况下两 者结果相同?
11
§5.3 for语句
P87
格式 for (表达式1;表达式2;表达式3) 语句
for (循环变量赋初值;循环条件;循环变量增值) 语句
执行 过程
求解表达式1
假 表达式2
真 循环体语句
求解表达式3
一、实现循环结构的控制语句 二、循环嵌套 三、循环结构程序举例
1
• while语句 • do-while语句 • for语句 • break、continue语句 • 几种循环的比较
C语言循环结构很好的c语言知识
![C语言循环结构很好的c语言知识](https://img.taocdn.com/s3/m/60a80faa0029bd64783e2c87.png)
注: 1:表达式可以省略,但分号不可以。 2:表达式可以是任意有效的C语言表达式. 执行过程: 1、计算表达式1; 2、计算表达式2,若其值为非零,转步骤3;若值为零,转 步骤5. 3、执行一次循环体 4、计算表达式3的值,转向步骤2 5、结束循环,执行for循环之后的语句。
例题:编写程序,求1+2+3+4+…+100的 值。
main() { int i=1,sum=0; while(i<101) {sum=sum+i; i++;} printf("%d",sum); } 结果:5050
do-while语句
形式: do 循环体 while(表达式); 如: do {i++; s+=i; } while(i<10);
求和:1……100
#include <stdio.h> main() { int i=0,s=0; for(i=0;i<=100;i++) { s=s+i; } printf("%d",s); }
注意:1、do是C语言 中的关键字,必须和 while联合使用。 2、do-while由do开始, 用while结束;必须注意 的是:在while(表达式) 后的分号不可丢,它表 示do-while语句的结束。 3、while后括号内的表 达式为任意合法表达式。 4、循环体可以是简单 语句或复合语句。
第五章:循环结构
while 语句
形式:
while(表达式) 循环体 如:while(i<0) {printf(“*”); i++;} 说明:1、while是c语言的关键字。 2、while后一对圆括号中的表达式,可以是C语言 中任意合法的表达式,由它来控制循环体是否执 行。 3、在语法上,要求循环体可以是一条简单的可执 行语句,也可以是花括号括起来的复合语句。
C语言 第五章-循环结构程序设计
![C语言 第五章-循环结构程序设计](https://img.taocdn.com/s3/m/05424e3610a6f524ccbf85d3.png)
执行过程如图所示。其中i为外循环的控制变 量,j为内循环的控制变量。
i =0 当 i <=10
j=0 当 j<=10
printf(“%d ”, i*j ) j++ i++
例4 编程打印“九九乘法表”。
分析:九九乘法表 1×1=1 1×2=2 1×3=3 … 2×1=2 2×2=4 2×3=6 … 3×1=3 3×2=6 3×3=9 … …… 9×1=9 9×2=18 9×3=27 …
i ++ ; } while ( i <= 100 ) ; printf ( " %d " , sum ) ; }
结果相同
同样是下列程序,但如果while后面的表达式结果一开始就是 假时,两种循环结果会不一样。
main ( ) /*程序1*/
{ int i , sum = 0 ; i = 101 ;
所以程序需要设计成二重循环。由于题目只 要求找到一组解,所以在循环过程中只要找到一组 满足条件的x, y, z就可以跳出循环。
跳出循环的方法可以采用break语句,但是, 因为是二重循环,所以要考虑使用break是否方便。
程序 百钱买百鸡问题。 void main ( ) { int x , y , z ;
打印第2行 ( i = 2 ) for (j=1;j<=9;j++) printf(“%5d”,i*j) ; printf ( “ \n ” ) ; /*换行打印*/
…… 打印第9行 ( i = 9 )
for (j=1;j<=9;j++) printf(“%5d”,i*j) ; printf ( “ \n ” ) ; /*换行打印*/
第5章C语言程序设计的循环结构
![第5章C语言程序设计的循环结构](https://img.taocdn.com/s3/m/fab0958b6037ee06eff9aef8941ea76e59fa4a5d.png)
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章 循环结构
![C语言程序设计:第5章 循环结构](https://img.taocdn.com/s3/m/78bcfe7f770bf78a64295418.png)
12
do...while语句(cont...)
课堂练习: 1.输出1---n之间的数,其中n从键盘输入。
int main(void) {
//1.定义变量i和n //2.输入n的值 //3.思考循环的开始条件:i从1开始 //4.思考循环的结束条件:i++,i > n //5.循环的条件:i<=n //6.循环要做的事情:输出i的值 return 0; }
} 相当于 while(1) {
}
26
小结
❖for(i=m;i<n;i++)//循环次数:n-m次 ❖for(i=m;i<=n;i++)//循环次数:n-m+1次
27
循环语句的练习
课堂练习: 1.输出n---1之间的数,其中n>1且n从键盘输入。 2.计算1*2*3*...*n的值(n的阶乘n!), 其中n从键盘输入。 3.计算10- 1/2 - 1/3 -....1/n的值 以上练习分别以while、do...while、for语句实现
int main(void) {
//1.定义变量i,n,sum //2.输入n的值 //3.思考循环的开始条件:i从1开始 //4.思考循环的结束条件:i++,i > n //5.循环的条件:i<=n //6.循环要做的事情:累加i的值 //7.输出计算结果 return 0; }
24
for语句(cont...)
{
sum = sum + i;
if(sum > 100)break;
C语言讲课-while循环结构课件
![C语言讲课-while循环结构课件](https://img.taocdn.com/s3/m/15aa6f405e0e7cd184254b35eefdc8d377ee1443.png)
输入:101=0
输出:
sum=101
此程序的功能?
什么情况下两者结果相同?
二、do-while语句
5.3 for语句
语句一般格式 for (表达式1;表达式2;表达式3) 语句
功能:计算表达式1的值,再判断表达式2,如果其值为非0(逻辑真),则执行内嵌语句(循环体),并计算表达式3;之后再去判断表达式2,一直到其值为0时结束循环,执行后续语句。
?
-3
do-while语句
语句一般格式 do 语句 while (表达式); 功能:先执行内嵌语句(循环体),之后计算表达式的值,不为0(逻辑真)时,再执行循环体并判断条件,直到表达式的值为 0 结束循环,转去执行while下面的语句。
do-while循环的算法
(
2
)直到型循环(
while循环控制结构
假设一张报纸厚0.1毫米,将报纸从中间对折多少次后,报纸高度会超过珠穆朗玛峰?
#include <stdio.h>void main( ){ float t=0.0001; int n=0; while(t<=8844) { t=t*2; n++; } printf(“ %d\n”,n);}
while循环控制结构
假设一张报纸厚0.1毫米,将报纸从中间对折,报纸会有多厚?
#include <stdio.h>void main( ){ float t=0.0001; t=t*2; printf(“ %f”,t);}
while循环控制结构
假设一张报纸厚0.1毫米,将报纸从中间对折,报纸会有多厚?
学习内容
循环结构的引入
C语言提供了三种循环控制语句,构成了三种基本的循环结构:while语句构成的循环结构do-while语句构成的循环结构for语句构成的循环结构
C语言中 循环结构 ppt课件
![C语言中 循环结构 ppt课件](https://img.taocdn.com/s3/m/9f71d88ff18583d0496459e1.png)
int main() {
return 0;
}
10
5.2 for语句
for语句的一般形式如下:
for(表达式1;表达式2;表达式3) 循环体语句
说明:for语句属于“计数”型循环。
表达式1
表达式2 真(非0)
循环体语句
假(0)
表达式3
for语句流程图
12
For语句最常用、最简单的形式
• for(循环变量赋初值;循环条件;循环变量增值)
C语言中 循环结构
第五章 循环控制结构
2
本章知识点:
–while语句的一般形式及应用 –for语句的一般形式及应用 –do...while语句的一般形式及应用 –多重循环结构的使用
•break语句和continue语句
3
5.1 while语句
语句的一般形式如下: while (表达式) 循环体语句
return 0;
}
6
• 需要注意的几个问题:
(1)累加求和算法。这个程序采用的算法思想 称为累加求和,即:不断用新累加的值取代变 量的旧值,最终得到求和结果,变量sum也叫 “累加器”,初值一般为0。
(2)必须给变量赋初值。 (3)正确判断条件的边界值。 (4) 避免出现“死循环”。 (5)可能出现循环体不执行。 (6)while后面圆括号内的表达式一般为关系表
【例5.1】 求前100个自然数的和 。
#include <stdio.h> int main() {
int n,sum=0; for (n=1;n<=100;n++)
sum=sum+n; printf("sum=%d\n",sum); retur,计算并输出S(n)的值。 S(n)=(1*2)/(3*4)-(3*4)/(5*6)+(5*6)/(7*8)+…+(-1)(n-
C语言程序设计:第5章-循环结构-课件教案
![C语言程序设计:第5章-循环结构-课件教案](https://img.taocdn.com/s3/m/e86ea564f11dc281e53a580216fc700abb6852bd.png)
C语言程序设计课件教案第五章循环结构教学目的掌握循环结构中的while语句、dowhile语句、for语句的用法,掌握中断语句中break和continue语句的用法。
教学要求1.熟练掌握while语句、dowhile语句、for语句2.熟练掌握break语句、continue语句重点和难点1.while语句、dowhile语句、for语句的使用2.break语句、continue语句的使用教学支撑环境与教学资源:1.笔记本电脑2.VC20103.投影仪教学方法讲授法、练习法、讨论法授课课时6课时教学过程AM一、课程引入计算1+2+3+...+n有几种方法,需要多少步骤?、循环结构语句什么时候用到循环结构:处理重复的问题的时候。
循环结构的三大语句:while语句、dowhile语句、for语句。
1.while语句while(循环条件表达式)循环体语句;执行过程:只有循环条件表达式的值为真就执行循环体语句,先判断后执行。
1.输出1---n之间的数intmain(void){inti=1;intn=0;printf("请输入n的值:");scanf("%d",&n);//1015while(i<=n)15printf("%d\n",i);i++;}return0;}2.计算m+...+n 的值intmain(void){inti=1;intn=0;intm=0;intsum=0;printf("请依次输入m 和n 的值:");scanf("%d%d",&m,&n);//m+...n10while(m<=n){sum=sum+m ;m++;}printf("sum=%d\n",sum);return0;}2.do...while 语句do循环体语句;}while(循环条件表达式);执行过程:先执行循环体语句,再检查循环条件表达式的值是否为真,如果为真则继续执行循环体语句,否则结束循环。
第五章循环结构的C程序设计
![第五章循环结构的C程序设计](https://img.taocdn.com/s3/m/cff34fb784254b35effd3466.png)
while循环语句
l while循环的一般形式如下:
while(表达式) 语句
例 while(i<5) { i++;}
表达式:关系表达式(如 i<=100)或逻辑表达式 (如x<y),也可以是数 值表达式或字符表达式。
示例1
流程图
使用while语句时,应注意几个 问题。
示例2
i=1; sum=0; printf("Input n:"); scanf("%d",&n); while(i<=n) { scanf("%d",&k);
sum=sum+k; i++; } printf("\nsum is:%d\n",sum); }
运行: Input n: 3
i
12 34
2
sum
46
while循环语句示例
例1:利用while语句实现:从键盘输入n(n>0)个数,求其之和。
程序:
void main() { int i, n, k, sum;
i=1; sum=0; printf("Input n:"); scanf("%d",&n); while(i<=n) { scanf("%d",&k);
len++; } printf("\nSentence is %d characters long.\n",len); }
运行:
Type in a sentence, then press<Enter>
【C语言】-循环结构-while语句
![【C语言】-循环结构-while语句](https://img.taocdn.com/s3/m/dca2732611661ed9ad51f01dc281e53a580251cd.png)
【C语⾔】-循环结构-while语句while语句:while循环可实现“当型”循环,即当条件成⽴时,执⾏循环体。
适合⽆法确定循环执⾏次数的情况。
while (表达式){循环语句}注意:表达式为循环控制条件,⼀般是关系表达式或逻辑表达式的形式。
循环控制条件也可以是任意合法的C语⾔表达式,例如:while (1)也是合法的,但注意尽量不要这样⽤,因为可能会导致死循环。
执⾏时,如果程序死循环,可以使⽤ctrl+break组合键结束程序。
循环语句也可以是空语句。
循环体中的空语句可以表⽰循环不做任何操作,可能只是为了消耗CPU的计算控件,也有可能是为了占位暂时使⽤空语句的形式。
多条循环语句必须⽤花括号括起来,以复合语句的形式出现。
例:i = 1;while (i <= 100)putchar('+');i++;程序原意是想输出100个“+”,但由于循环体没有使⽤花括号括起来,所以导致系统认为只有putchar('+');这⼀条语句是循环语句,i++;不属于循环体,所以i的值总是为1。
那么i永远⼩于等于100,所以这个循环将永远不结束,是⼀个死循环。
while语句执⾏过程:注意:循环体有可能⼀次也不执⾏。
循环在下列情况,将推出循环:1)、条件表达式不成⽴(为0)时。
2)、在循环体中遇到break、return等语句时。
避免出现⽆限循环,⼜叫死循环。
为了避免死循环,循环体中应该有使循环趋近于结束的语句。
do while语句:可以实现”直到型“循环。
就是执⾏循环体,直到条件不再成⽴时退出循环。
do while⼀般形式:do{循环语句} while (表达式);do while循环的执⾏流程:。
C语言第5章循环结构程序设计1
![C语言第5章循环结构程序设计1](https://img.taocdn.com/s3/m/838d0a333968011ca30091b8.png)
(2)在循环体中应有使循环趋向于结束的语句。 比如上例中,循环结束的条件是“score>=0”, 那么当我们把这个班的成绩全部输入完后, 一定要输入一个负数,才能使程序往下执行。 (3)循环体语句有可能一次也不执行。比如说上 例中,当第一次输入的分数就为负数时,则 循环体一次也不执行。
§5.3 do …while语句
① ② ④ ③
for(i=1; i<100; i++) s=s+i; printf(″s=%d″, s); }
/*循环体语句*/
对于for循环,有一点非常重要,即条件测 试永远是在循环开始时进行,如果在循环开 始时条件为假,那么循环体语句就不会被执 行。如: int i=10; for (k=10;k!=i;k++) printf(″%d″,k); printf(″%d″,k);
2、循环控制变量必须在循环体内有所改变,才 能使while和do-while语句的循环控制条件表达 式的值不断改变,直至循环结束。否则会造 成死循环。例如: i=1; while(i<=100) putchar(′*′); i++; 这个循环永远不会结束,因为“i++;”语句 不属于循环体中的语句,循环控制变量i没有 在循环体内被改变。 程序应该作如下改变:
在使用while语句的时候,我们要注意以下 两个问题: (1)循环体如果包含一个以上的语句,应该用花 括号括起来,以复合语句的形式出现。如果 不加花括号,则while语句的范围只到while后 面的第一个分号处。比如上例中,while语句 中如无花括号,则while语句范围只到 “average+=score;”。
#include <stdio.h> main() {int i,n;long fac; Scanf(―%d‖,&n); i=1 while (i<=n) fac=fac*i; i++; } Printf(―%d!=%ld‖,n,fac); }
c语言第5章循环结构程序设计课件
![c语言第5章循环结构程序设计课件](https://img.taocdn.com/s3/m/bf660156876fb84ae45c3b3567ec102de2bddf04.png)
第五章 循环结构程序设计
典型例题(例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( ) {…}
计算机等级考试 循环结构
![计算机等级考试 循环结构](https://img.taocdn.com/s3/m/bd48bcd176eeaeaad1f330b2.png)
Main()
{
Float n,t,pi; /*存放分母,每次累加不是一个整数,而是实数,因此要用float定义*/
Int s;
T=1.0;n=1.0;pi=0;
S=1;
While(fabs(t)>=1e-4)
{
Pi=pi+t;
N=n+2;
S=-s;
T=s/n;
}
Pi=4*pi;
6)表达式1和表达式3可以是一个简单的表达式,也可以是一个逗号表达式,表达式1和表达式3可以是与循环无关的任意表达式。
i=1,sum=0;
for(p=0;i<=100;p=p+i)
{sum+=i;i++}
7)表达式可以是关系、逻辑、数值、字符表达式。
关系:for(i=1;i<=100;i++)
逻辑:for(i=3,j=4;i&&j;i--,j--)
1)while和do-while语句在循环体之前赋值。
For在表达式(也相当于在循环体前赋初值)
2)while和do-while使循环趋于结束的语句位于循环体内,而for循环位于表达式3(也可位于循环体内)
3、共同点:
1)三个循环体解决同一个问题时,条件相同。
2)三个循环都必须有使循环趋于结束的语句,否则为死循环。
printf(“n!=%lf\n”,s);
}
四、三种循环结构的区别和特点。
1、while和do-while的区别
1)while当型循环:先判断,后执行
do-while直到型循环:先执行,后判断
2)while最少执行次数0
计算机二级C语言、循环结构
![计算机二级C语言、循环结构](https://img.taocdn.com/s3/m/e1d45e0dcec789eb172ded630b1c59eef8c79aad.png)
第五章循环结构引言:循环结构用于在给定条件成立时,反复执行某个语句组,反复执行的语句组称为循环体。
循环体可以是复合语句,也可是单一的语句或空语句。
1. while语句(1) 一般形式:while(表达式)循环体int k=0;while(k<10){printf(“*”);k++;}printf(“end”);while是关键字;while后圆括号中的表达式可以是c语言中任意合法的表达式,但它不可以为空。
它用来判断是否执行循环体;循环体在语法上认为是一条语句,若有多条则应用复合语句。
(2) 执行过程:表达式为真进入循环,表达式为假退出循环。
int k=0;while(k<10){printf(“*”);k++;}printf(“end”);0<10 * 11<10 * 2……..9<10 * 1010<10 假end(3) 表达式为循环控制条件。
结束循环:改变条件表达式的值,使其最终为假条件恒真,强行退出int k=0;while(k<10){printf(“*”);k++;}printf(“end”);int k=0,n=0;while(k<10){printf(“*”);n++;if(n>=10) break;}printf(“end”);0<10 * 1 jia0<10 * 2 jia ………0<10 * 9 jia0<10 * 10 breakend(4) 程序举例:累加思想:编写程序,求12+22+..+n2直到累加和大于或等于10000为止。
123….i++ i*i用∏/4=1-+-+…..公式求∏的近似值,直到最后一项的绝对值小于10-6为止。
1 1/11/3 1/(1+2)1/5 1/(3+2)fm=fm+2t=1/fms=1 s=-s#include<stdio.h>#include<math.h>main(){double sum=0,fm=1,pi,t=1; int s=1;while(fabs(t)>=1e-6) {sum=sum+t*s;fm=fm+2;t=1.0/fm;s=-s;}pi=4*sum;printf(“%f\n”,pi);}1>=1e-6 0+1*1 3 1.0/3 -11/3>=1e-6 1+1/3*-1 5 1.0/5 11/5>=1e-6 ….+1/5 7 1.0/7 -1…….迭代思想:用迭代法求方程x=cos x的根,要求误差小于10-6.2. do—while 语句(1) 一般形式:do循环体while(表达式) ;printf(“end”);int k=0;do{printf(“*”);k++;}while(k<10);printf(“end”);注:do---while联合使用;do---while整体作为一条语句,故后面的分号不可少;while后圆括号中的表达式为c语言中一个任意合法的表达式,它决定了是否执行循环体;循环体语法上认为是一条语句,若有多条则应用复合语句。
c语言第五章知识点
![c语言第五章知识点](https://img.taocdn.com/s3/m/e9ae0314ae45b307e87101f69e3143323968f5ad.png)
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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/*
阅读程序:ex10_02.c */ //包括标准输入输出头文件 //主函数
#include <stdio.h> void main() { int i;
i = 10; //初始化 i while(i>=1) { printf("%4d",i); //输出 i i--; //将 i 递减 } }
使用这个指令序列,我们可以确保 count 的初始值为 1。我们 可以在赋值语句为 count 指定任何值——重要的是要指定“某些”值。 实际上,指定的值要取决于应用程序。
§10.3.3 while 应用-更改控制变量的值
我们仍需要更改 count 的值才能最终退出 while 语句,这需要 使用像 count=count+l 这样的条件,在每次执行 while 语句时都 递增 count 的值。事实是,用于重复单个语句的 while 语句不会妨 碍我们使用其他语句来更改 count 的值,我们所要做的就是使用复合 语句来替代单个语句,例如: count = 1; //将 count 初始化 while( count <= 10 ) { printf("%4d",count); count++; //将count递增 } 现在让我们来分析一下这组完整的指令的工作方式。第一个赋值语 句将 count 设置为1。然后,进入 while 语句,条件第一次得到赋 值。因为 count 的值小于 10,所以条件成立,并执行复合语句。复 合语句中第一个语句是调用 printf()方法来显示 count 值。接下来 的语句是将 count 中当前存储的值加上 1,使该值等于 2。现在 while 语句循环回来重新测试条件,因为 count 的值仍小于 10,所 以将再次执行复合语句,该过程将一直持续到 count 的值达到 11。
#include <stdio.h> void main() { int i,num;
//包括标准输入输出头文件 //主函数
//定义数字和控制变量
i = 1; //初始化循环控制变量 i while(i<=4) //循环 { printf("请输入数:"); scanf("%d",&num); printf("您输入数:%d\n",num); i++; //将 i 递增 } }
在计算机编程中,指出系列数据开始或结束的数据值被称为“始 终标记”(Sentinel)。当然,必须要选择使用始终标记值,以使 它不会与合法的数据值发生冲突。
程序:ex10_07.c 计算成绩(演示始终标记)*/ #include <stdio.h> //包括标准输入输出头文件 #define LOWGRADE -1 //定义“始终标记” void main() { int grade; //定义变量接收用户输入的成绩 long total; //定义成绩总数 grade = 0; //初始化成绩 total = 0; //成绩总和初始化为零 printf("本程序学生成绩的和,输入-1结束。\n"); while( grade != LOWGRADE ) { total = total + grade; //累加成绩 printf("输入成绩:"); scanf(“%d”,&grade); //接收用户输入 } //输出学生成绩的总和 printf("学生成绩和为%ld.\n",total); } /*
§10.3.2 while 语句应用-变量赋初值
我们该如何设置 count 的初始值,来控制在首次为条件赋值时 while 语句所实现的功能呢?回答是在遇到 while 语句之前,为 所测试的条件中的每个变量赋值,例如,下面的指令顺序是有效的:
count = 1; //控制变量赋初值 while( count <= 10 ) printf("%4d",count);
/* */
程序:ex10_05.c 交互式 while 循环
ቤተ መጻሕፍቲ ባይዱ
#include <stdio.h> void main() { int i,num,sum;
//包括标准输入输出头文件 //主函数 //定义数字及和
sum = 0; //初始化和 i = 1; //初始化循环控制变量 i while(i<=4) { printf("请输入累加的数:"); scanf("%d",&num); sum = sum + num; //累加 printf("和为:%d\n",sum); i++; //将 i 递增 } }
§10.2.1 while 语句格式
while 语句是一种最常见的重复语句,它可以用于各种编 程情况下。while 语句的常规格式如下所示:
while(条件) 语句;
圆括号内的“条件”与 if-else 语句中的条件的赋值方 式完全相同,不同的是条件的使用方式。当 if-else 语句中 的条件成立时,将执行一次该条件后的语句。在 while 语句 中,只要条件仍保持成立,就会反复执行条件后的语句,这自 然意味着,在 while 语句的某些地方,必须有一个将测试条 件的值更改为 false 的语句,这实际就是情况(Case)。目前 我们只考虑条件和圆括号后的语句。
§10.3.1 while 语句应用
为了更清楚一些,请考虑关系条件 count<=lO 和语句 printf(“%4d”,count);,使用它们,我们可以编写下面有效的 while语句:
while( count <= 10 ) printf("%4d",count);
虽然该语句是有效的,但细心的读者将意识到,我们创建了一种 或是一直调用 printf()方法(直到我们终止程序)或是根本不调用 它的情况。
/* */
程序:ex10_06.c 求 1-100 的和
#include <stdio.h> void main() { //定义变量 int i,total;
//包括标准输入输出头文件 //主函数
total = 0; //初始化和 i = 7; //初始化循环控制变量 i while(i>=1) { total = total + i; //累加 i--; //将 i 递增 } //输出 1到100 的和 printf("1+2+..+100 = %d\n",total);
}
§10.4.2
始终标记
到目前为止,我们所创建的都是固定计数循环的示例,其中计数 器被用来控制循环重复的次数。通过使用 while 语句,还可以构 造条件变化的循环。 例如,当输入一些成绩时,我们可以不希望统计输入的成绩个数, 而是希望能够连续地输入这些成绩,并在最后一个键入一个特定的数 据来指出数据输入的结束。
§10.2.2 while 语句执行流程
计算机执行 while 语句的过程如下所示: (1)测试条件。 (2)如果条件具有非0(true)值: ①执行圆括号后的语句; ②回到步骤(1)。 否则 循环 退出 while 语句。
进入while语句 条件赋值 为 false
测试条件 (步骤1)
退出 while 语句
/* */
程序:ex10_03.c 打印数字 1-10 及其平方值和立方值表的任务
#include <stdio.h> void main() { int num;
//包括标准输入输出头文件 //主函数
//打印表头 printf("NUMBER SQUARE CUBE\n"); printf("--------------\n"); num = 1; //初始化 num while( num < 11 ){ printf("%6d",num); //输出数字 printf("%9d",num*num); //输出平方 printf("%7d\n",num*num*num);//输出立方 num++; //将num递增 } }
C语言基础
第二节 循环结构- while 语句
§10.1 循环(重复)
前面几章介绍的程序在演示 C 程序的正确结构,以及构造 基本的 C 输入、输出、赋值和选择功能方面是非常有用的。 大多数程序的实际功能主要表现在它们多次重复相同的计算 或指令序列的能力上,即每次使用不同的数据,而不必针对每组 新的数据值重新运行程序,本章将介绍实现该功能的 C 语句, 包括 while、for 和 do-while 语句。
§10.4.1
交互性 while 循环
将交互式数据输入与 while 语句的重复功能结合起来可 以产生适应性好,功能强大的程序。为了理解涉及的概念,请 考虑程序 ex10_04.c 。其中 while 语句被用来接受并计 算用户同时输入的 4 个数字的和。。
/* */
程序:ex10_04.c 交互式 while 循环
§10.3.4 while 应用-避免死循环
在考虑其他 while 语句的示例之前,先来讲解一下关于程序 ex11_01.c 的两个注意事项。首先,可以使用任何更改 count 值 的语句来替代 count++; 语句,例如,像 count = count + 2; 这样的语句将会显示出间隔为 2 的整数。 其次,程序员有责任确保 count 值的变化最终会导致从 while 循环正常退出,例如,如果我们使用表达式 count--; 代替表达式 count++;,那么 count 的值将永远不会超过 10,从而造成无限循 环。 无限循环(Infinite loop)是指永远不会结束的循环。计算机不 会走到你身边,拍拍你,说:“对不起,你创建的是一个无限循环”, 它只是会持续显示数字,直到你意识到程序没有按照你的预想工作。 对于大多数系统,同时按下 Ctrl 键和 C 键可以中断程序的执行。