第6章循环控制语句
第6章-循环
{…
{…
{
while( )
do
for(;;)
{…}
{… }
{… }
}
while( );
}
} while( );
6.5 循环的嵌套
(4) while( ) (5) for(;;)
{…
{…
do{…}
while( )
while( )
{}
{…}
…
}
}
(6) do {… for(;;){ } … } while( )
第六章
本章要点
循环的基本概念 不同形式的循环控制 多重循环问题
主要内容
6.1 概述 6.2 goto语句以及用goto语句构成循环 6.3 用while语句实现循环 6.4 用do-while语句实现循环 6.5 用for 语句实现循环 6.6 循环的嵌套 6.7 几种循环的比较 6.8 break语句continue和语句 6.9 程 序 举 例
}
的值为} “真”时,两种循环得到的结
果相同。否则,二者结果不相同。
6.4 用for 语句实现循环
❖ C语言中的for语句使用最为灵活,不仅可以用于循环次数已经确 定的情况,而且可以用于循环次数不确定而只给出循环结束条件 的情况,它完全可以代替while语句。
❖ 一般形式: for(表达式1;表达式2;表达式3) 语句
以赋初值,使循环变量自动增值等。
6.4 用for 语句实现循环
说明: (5) 3个表达式都可省略,如:
for(; ;) 语句 相当于
while(1) 语句 即不设初值,不判断条件(认为表达式2为真值), 循环变量不增值。无终止地执行循环体。
6.4 用for 语句实现循环
C语言单元复习题 第06部份 循环
C.用do...while语句构成循环时,在while后的表达式为零时不一定结束循环
D.用do...while语句构成循环时,在while后的表达式为零时结束循环
(知识点:do...while语句; 难度系数:1; 答案:D )
10.以下关于do...while语句的叙述中,正确的是:( )。
(知识点:循环的基本概念; 难度系数:1; 答案:D )
2.以下关于循环的描述中,错误的是:( )。
A.while、do...while和for语句的循环体都可以是空语句
B.for和do...while语句都是先执行循环体,后进行循环条件判断
C.while语句是先进行循环条件判断,后执行循环体的
D.使用while和do...while语句时,循环变量初始化的操作应在循环语句之前完成
A.break语句和continue语句都只能用于循环结构
B.break语句和continue语句都只能用于switch结构
C.break语句用于跳出循环体,continue语句用于跳出当次循环
D.continue语句用于跳出循环体,break语句用于跳出当次循环
(知识点:continue语句; 难度系数:1; 答案:C )
A.x==0B.x==1C.x!=lD.x!=0
(知识点:while语句; 难度系数:1; 答案:D )
5.在C语言中,当while语句构成的循环中的条件为( )时,结束循环。
A.0B.1C.真D.非0
(知识点:while语句; 难度系数:1; 答案:A )
6.有以下程序段:
int k=0;
while(k=1) k++;
第6章 循环结构练习题
循环结构练习题一、选择题。
2、对于DO UNTIL ……LOOP循环,正确的是()。
A 如果循环条上为常数0,则一次循环也不执行B 如果循环条件为常数0,则至少执行一次循环C 如果循环条件是不为0的常数,则至少执行一次循环D 无论循环条件是否为TRUE,都至少执行一次循环3、要在DO ……LOOP循环中退出循环,应使用()语句。
A EXITB EXIT DOC CONTINUED STOP LOOP4、以下循环结构中,VB不支持的是()。
A FOR……NEXTB FOR EACH……NEXTC DO…..LOOPD DO……ENDDO5、要在FOR……NEXT循环中退出循环,应使用()语句。
A EXITB EXIT FORC CONTINUED STOP LOOP6、下列关于FOR循环的说法中,正确的是()。
A 循环变量、初值、终值和步长都必须是数值型B STEP后面的值必须为正数C 初值必须小于终值D 初值必须大于终值7、下列关于DO……LOOP语句的叙述中,不正确的是()。
A DO……LOOP语句采用逻辑表达式来控制循环体执行的次数。
B DO WHILE……LOOP语句与DO UNTIL……LOOP语句中WHILE与UNTIL后面的表达式值为TRUE或非0时,循环继续。
C DO……LOOP WHILE与DO……LOOP UNTIL 语句都至少执行一次循环D DO WHILE…..LOOOP语句与DO UNTIL……LOOP语句可能不执行循环8、下面的循环程序在执行时将()。
FOR I=1 TO 10 STEP 0K=K+2NEXT IA 形成无限循环B 仅循环一次C 语法错误D 一次也不循环9、对于EXIT FOR,叙述正确的是()。
A EXIT FOR语句可以退出任何类型的循环B 一个循环只能有一条EXIT FOR语句C EXIT FOR表示返回到FOR语句执行D 一个FOR循环可以有多条EXIT FOR语句10、对于FOR循环中的初值、终值、步长,下列说法中,正确的是()。
C语言第六章复习题(含答案)
1.t为int类型,进入下面的循环之前,t的值为0while( t=l ){ ……}则以下叙述中正确的是( B )(A) 循环控制表达式的值为0 (B) 循环控制表达式的值为1(C) 循环控制表达式不合法(D) 以上说法都不对2.有以下程序main( ){ int i,s=0;for(i=1;i<10;i+=2) s+=i+1;printf(“%d\n”,s);}程序执行后的输出结果是 ( D )。
(A) 自然数1~9的累加和 (B) 自然数1~10的累加和(C) 自然数1~9中的奇数之和 (D) 自然数1~10中的偶数之和3.以下程序段的输出结果是( C )。
int x=3;do{ printf("%3d",x-=2); }while(!(- -x));(A)1 (B)30 (C)1 -2 (D)死循环4.以下程序中,while循环的循环次数是( D)。
main(){ int i=0;while(i<10){ if(i<1) continue;if(i==5) break;i++;}......}(A) 1 (B) 10(C) 6 (D) 死循环,不能确定次数5.下面程序的输出是( B )。
(A)741 (B)852 (C)963 (D)875421main(){int y=9;for(;y>0;y--){if(y%3==0){printf("%d",--y);continue;}}}6.若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是( A)。
for (i=5;i;i--)for(j=0;j<4;j++){...}(A)20 (B)25 (C)24 (D)307.执行语句: for(i=l;i++<4;;);后,变量i的值是(C)。
(A) 3 (B) 4 (C) 5 (D) 不定8.假定a和b为int型变量,则执行以下语句后b的值为( D )。
第六章 循环控制
当流程到达do后,立即执行循环体语 句,然后再对条件表达式进行测试。该 语句结构使循环至少执行一次。 同样,继续条件的不断变化很重要,否 则会导致死循环。
循环变量初始化
Yes 循环体改变 循环变量
继续条件
No
例如:
int i = 1, sum = 0; do {
语句标号用标识符表示,它的命名规则与变量名相同。
结构化程序设计方法主张限制使用goto语句,因为滥用goto语句将使 程序流程无规律、可读性差。但也不是绝对禁止使用goto语句。
100
例如以下程序求 n n 1
#include <iostream.h>
void main() {
int i=1,sum=0; loop:
循环体中应该有使循环趋向结束的语句。继续条件的不断变化很重要, 否则会导致死循环。
while循环中的继续条件是一个表达式,并没有更多的限定,所以,上 例可以在继续条件处放上一个逗号表达式,完成同样的功能: while(sum += i++, i<=100); 但是这种写法可读性较差。
6.4 do-while语句
for语句将循环体所用的控制放在循环顶部统一表示,因此显得更直观。 除此之外,还充分表现了其灵活性。
for (i=1; i<=100; i++) {
sum += i; }
(1)表达式1可以省略。此时应在for语句之前给循环变量赋初值。 i = 1; for (; i<= 100; i++) sum += i;
(6)表达式1,表达式2,表达式3都可以为任何表达式。如: for (sum=0; i<=100; i++) sum += i;
第6章 循环控制
例 用while循环求
循环初值
循环变量增值
/*ch5_2.c*/ #include <stdio.h> main() { int i,sum=0; i=1; while(i<=100) { sum=sum+i; i++; } printf("%d",sum); }
循环条件
循环终值
循环体
例 显示1~10的平方
3 21 144 987 6765 46368 317811 2178309 14930352 102334155
例 判断m是否素数 读入m k=m i=2
当ik
真 m被i整除
假
用break 结束循环 i=i+1 真 ik+1 假
输出:m”不是素数” 输出:m”是素数”
例 译密码
例如 Hello,world! 译成密码:Lipps,asvph!
循环的嵌套
三种循环可互相嵌套,层数不限 外层循环可包含两个以上内循环,但不能相互交叉 嵌套循环的执行流程 (1) while() 嵌套循环的跳转 (3) while() (4) for( ; ;) (2) do { …… 禁止: { …… { …… { …… while() 从外层跳入内层 do do do { …… 跳入同层的另一循环 { …… { …… { …… } }while(); }while( ); }while( 向上跳转 );
程序举例
t=1,pi=0,n=1.0,s=1 当|t|1e-6 pi=pi+t n=n+2 s=-s t=s/n pi=pi*4 输出pi 分子:1,-1,1,-1… 分母:1,3,5,7,...
例 求Fibonacci数列:1,1,2,3,5,8,……的前40个数
[计算机软件及应用]计算机基础2C语言第6章循环结构
2021/8/26
2
while语句
(1)一般格式 while(循环继续条件) { 循环体语句组;}
while语句的语义是:计算表达式的值,当值为真(非 0)时, 执行循环体语句。
2021/8/26
3
#include <stdio.h>
main()
{ int n=0; printf("input a string:\n"); while(getchar()!='\n') n++; printf("%d",n); }
重循环
2021/8/26
5
当输入a的值为5时,分析以下程序 的结果
main() {
int a,n=0; scanf(“%d”,&a); while(a=5)
printf("%d ",n++); }
2021/8/26
6
以下程序的输出结果是2 0。
#include <stdio.h> void main() {
char c; c=getchar( ); while((getchar())!='?')
putchar(++c); }
jhiu
2021/8/26
9
#include <stdio.h> void main() {
输入:2473<CR>(<CR>代表回车符), 程序的输出结果是
int c;
while((c=getchar())!='\n')
for(n=7;n<=100;n+=7)
循环结构的程序设计图形打印题演示文稿
18 第18页,共118页。
6.2 while语句
#include <stdio.h>
int main( )
{ char ch;
ch = getchar( );
while ( ch != ‘\n’ )
{
putchar ( ch );
➢ for语句
➢ do_while语句
➢ 转移语句
➢ 循环应用
4 第4页,共118页。
6.1 循环的基本概念
?提出问题
提问:从键盘上输入10个整数并求和,怎么编程?
回答:在程序中写10个scanf语句,还可以写%d%d… 提问:从键盘上输入500个整数并求和,怎么编程? 回答:这个,嗯……??? 不会让我写500个……
输入:13 -6
22 第22页,共118页。
6.2 while语句
三.循环嵌套
在循环体中,又包含有循环语句。
while {…
while
{ …
} …
}
23 第23页,共118页。
例:输出下三角形乘法九九表。
123456789
---------------------------------------------
int main ( )
{ int i, j; for ( i=1; i<= 9; i++ ) printf ( "%4d", i); printf ("\n--------------------------------------\n");
for ( i=1; i<= 9; i++ )
C语言章节教案
章节教案章节名称第1章 C语言概述授课类型理论课(√)、实践课(√)、实习()教学时数1、了解C语言的发展历程教学目的要求2、了解C语言的特点3、掌握C程序的组成结构4、掌握C程序的上机操作环境1.1 C语言出现的历史背景1.2 C语言的特点主要知识点1.3简单的C程序介绍1.4 C程序的上机步骤3教学重点、重点:C语言的组成结构及程序书写规范。
难点难点:C语言实验环境的操作。
教学内容的衡接及学时分配问题:不能及时熟练的掌握TC集成环境的操作,对程序出错时的英文提示信息看不懂。
教学后记教法:对集成环境操作先只介绍精简操作,而后再不断的扩展操作。
而对英文提示信息方面应引导学生先要有耐心的看这些信息,而后养成积累这些提示信息的习惯。
理论内容2学时,实验2学时。
章节名称第2章程序的灵魂——算法授课类型理论课(√)、实践课(√)、实习()教学时数1、了解程序的组成要素教学目的要求2、理解算法的概念和特性3、掌握用算法描述工具来描述算法4、了解结构化程序设计方法2.1算法的概念2.2简单算法举例主要知识点2.3算法的特性2.4怎样表示一个算法2.5结构化程序设计方法4教学重点、重点:C语言程序的组成要素和使用各种算法描述工具描述算法。
难点难点:运用算法和结构化程序设计方法解决实际问题。
教学内容的衡接及学时分配引导学生选择一种适合自己习惯的算法描述工具,而后利用该工教学后记具来分析和解决各类问题,并逐步的培养自己分析问题、解决问题的能力。
基本理论概念2学时,各种算法描述工具2学时,实验2学时。
章节名称第3章数据类型、运算符与表达式授课类型理论课(√)、实践课(√)、实习()教学时数1、掌握基本数据类型及其定义方法教学目的要求2、掌握运算符的种类、运算优先级、结合性。
3、掌握不同类型数据间的转换与运算。
4、掌握表达式类型和求值规则。
3.1 C的数据类型3.2常量与变量3.3整型数据3.4实型数据主要知识点3.5字符型数据3.6变量赋初值3.7各类数值型数据间的混合运算3.8算术运算符和算术表达式3.9赋值运算符和赋值表达式3.10逗号运算符和逗号表达式教学重点、难点重点:C语言的数据类型、常量概念与特性、变量的定义与特性、运算符的优先级与结合性,各类数值型数据间的混合运算。
计算机2级C语言题库第六章 循环控制
第六章循环控制一单项选择题1.下面程序段的运行结果是()。
int n=0;while(n++<=2);printf(“%d”,n);A) 2 B) 3 C) 4 D) 有语法错2.设有程序段:t=0;while(printf(“*”)){t++;if(t<3) break;}下面描述正确的是()。
A) 其中循环控制表达式与0等价B) 其中循环控制表达式与'0'等价C) 其中循环控制表达式是不合法的D) 以上说法都不对3.下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,请选择填空()。
#include <stdio.h>main(){int a,b,t;scanf(“%d%d”,&a,&b);while( ___________ ){if(a>b){t=a;a=b;b=t;}printf(“%d,%d\n”,a,b);scanf("%d%d",&a,&b);}}A) !a=b B) a!=b C) a==b D) a=b5.对以下程序段描述正确的是()。
x=-1;do{x=x*x;}while(!x);A) 是死循环B) 循环执行二次C) 循环执行一次D) 有语法错误10.若i为整型变量,则以下循环执行次数是()。
for(i=2;i==0;) printf(“%d”,i--);A) 无限次B) 0次C) 1次D) 2次11.以下不是无限循环的语句为()。
A) for(y=0,x=1;x>++y;x=i++) i=x;B) for(;;x++=i);C) while(1){x++;}D) for(i=10;;i--) sum+=i;13.执行语句for(i=1;i++<4;) ;后变量i的值是()。
A) 3 B) 4 C) 5 D) 不定14.有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。
c语言(7)
内容:
§6.5 循环嵌套
§6.6 break和continue语句
§6.7 循环结构程序举例
§6.5 循环的嵌套
一、 循环的嵌套
在一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。
二、循环嵌套结构的执行
外循环每执行一次,内循环执行一个周期。
k=sqrt(m);
for (i=2;i<=k;i++)
if (m%i==0) {flag=1;break;}
if (flag==0) /* 按flag的值判断m是否为素数 */
{if (n%5==0) printf("\n"); /*每行输出5个数据*/
printf("%8d",m); /*输出格式字符使用%8d是为了输出格式清晰*/
#include "math.h" /* 要使用数学函数,必须包含math.h头文件 */
main ()
{int s=1; /* 变量s用来存放每项的系数 */
float pi=0,n=1; /* 变量pi用来存放总和,n用来存放项数 */
while (1/(2*n-1)>=1e-6) /* 循环结束条件是当项值的绝对值小于0.000001 */
printf("\n");/* 内循环的第三个语句输出回车换行符 */
}
}
§6.6 break语句和continue语句
一、 break 语句
1. 格式: break;
2. 功能: 提前结束循环,从循环体中无条件跳出来,转到循环语句后面的语句执行。
C语言第6章循环结构程序设计
第6章循环控制本章要求:1、初步熟悉用计算机解决问题的思路。
2、掌握while、do-while、for语句的特点和使用方法。
3、掌握break、continue语句的用法。
4、熟悉一些常见问题的算法及其C语言实现。
§6.1 概述循环:反复执行称为“循环体”的程序段。
循环控制常用于数学迭代、对象遍历等问题的求解,几乎所有实用程序都包含循环。
特别是在现代多媒体处理程序(图像、声音、通讯)中,循环更是必不可少。
Intel公司为了加快循环程序的执行,在CPU硬件中加入多媒体扩展指令MMX(Multi-Media-eXtension );AMD在CPU中加入3D Now!指令。
循环结构是结构化程序三种基本结构之一。
(顺序结构、分支结构)。
根据开始循环的初始条件和结束循环的条件不同,C语言中用如下语句实现循环1、用goto语句和if语句构成循环。
2、用while语句。
3、用do-while语句。
4、用for语句。
§6.2 goto语句一般形式:goto 语句标号作用:无条件转向“语句标号”处执行。
“语句标号”是一个标识符,它表示程序指令的地址。
goto语句不符合结构化程序设计准则,因为无条件转向使程序结构无规律、可读性差。
一般应避免使用goto语句,但如果能大大提高程序的执行效率,也可以使用。
[例6.1] 用if语句和goto语句构成循环,求。
main(){int i,sum=0;i = 1;loop:if (i <= 100){ sum = sum + i;i++;goto loop;}printf("%d",sum);}§6.3 while语句一般形式:while(表达式) 语句作用:实现“当型”循环。
当“表达式”非0(真)时,执行“语句”。
“语句”是被循环执行的程序,称为“循环体”。
特点:先判“表达式(条件)”。
[例6.2]main(){int i,sum=0;i = 1;whie (i <= 100){sum = sum + i;i++;}printf("%d",sum);}注意:1、注意给出循环的初始条件,如本例中“sum=0、i=1”。
第六章循环程序设计案例
二、什么是循环
生活中的循环
打印50份试卷
10000米赛跑
锲而不舍地学习
旋转的车轮
循环结构的特点
循环结构 循环条件 循环操作
二、什么是循环
循环结构也称重复结构:程序中反复执行的一 组指令或程序段。 循环体:被反复执行的程序段。 循环变量:用来控制循环是否继续进行的变量。
三、循环语句
while 循环 do...while 循环 for 循环
for语句最简单的形式: for(循环变量赋初值;循环条件;循环变量增值) 例如: for(i=1;i<=100;i++) sum=sum+i; 用for语句 简单、方便。
main() {int i,sum=0; for(i=1;i<=100;i++)
sum=sum+i;
printf(“%d”,sum); }
初值(从什么情 况开始)
int i=1;
条件(结束值,什么 情况结束)
while (i<=5) {
循环体(重 复什么)
printf(“hello\n"); i++; } }
循环体中改变 循环条件的语 句)
例 求1+2+· · · · · ·+ 100
分析: 求和的过程为:
1) S=1 2) S=1+2 3) S=1+2+3 · · · · · · 100) S=1+2+ · · · +100 S=0 S =S+1 S =S+2 S = S+ 3 · · · · · · S= S+100
do-while、while的区别
第06章1循环控制
例:打印下列图案 * ** *** **** *****
* * * * *
【例】输出九九表。 输出九九表。
1 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 2 3 4 5 6 7 8 9
------------------------------------------
for (r=1;r<=10;r++) { area=pi*r*r; if (area>100) break; printf("%f",area); } printf("******\n";) : for(r=1;r<=10&&area<=100;r++) : { area=pi*r*r; printf("%f",area); }
⒈ 概念 :一个循环体内又包含另一个完整 ⒉ 说明 :
1)嵌套可以是多层的 ; ) 2)一个循环体必须完完整整嵌套在另一个 ) 循环体内, 循环体内,不能出现交叉 ; 3)三种循环可以互相嵌套 。 )
几种合法的嵌套结构:
外循环
while ( ) do {… {… while ( ) 内循环 do{…} {…} while ( ); } } while ( ); while ( ) {… do {…} while ( ); … } for ( ; ; ) {… while ( ) {…} … } for ( ; ; ) {… for ( ; ; ) {…} } do {… for(; ;) {…} … } while ( );
程序如下: 程序如下:
#include <stdio.h> 循环条件 main() { int i,sum=0; 循环初值 i=1; while(i<=100) 循环终值 { sum=sum+i; 循环变量增值 i++; } printf("%d",sum); 循环体 }
C语言:循环
flag表示是否为素 数,1(是) 0(否)
k=m-1; k=m/2; k=sqrt(m);
break;
34
实现2:
#include <math.h> void main( ) { int m,k,i; scanf(“%d”,&m); k= sqrt(m); for (i=2;i<=k;i++) { if (m % i == 0) break; } if ( i>k ) printf(“yes!”); else printf(“no!”); }
void main( ) { int m,k,i,flag; scanf(“%d”,&m); flag=1; k=m-1; for (i=2;i<=k;i++) { if (m%i==0) flag=0; } if (flag==1) printf(“yes!”); else printf(“no!”); }
35
例: 百钱买百鸡 公元前五世纪,我国古代数学家张丘建在《算经》 一书中提出“百钱买百鸡”问题: “鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱 一,百钱买百鸡,问鸡翁,鸡母,鸡雏各几何?” 基本思路: 这是一个不定方程的问题. cocks+hens+chicks=100 (百鸡)--① 5*cocks+3*hens+chicks/3=100 (百钱)--②
分析: 声明一个变量(sum)作为”容器”存放加法的和,并设置 初值为0. 1)将1加入sum 步骤1)~100)描述的是相同 2)将2加入sum 的动作,可以描述为一个重复 。。。。。。 的过程: 99)将99加入sum 将n(初值为1)加入sum 100)将100加入sum n的值增加1 最后输出sum的值。
C语言6-循环结构程序设计(update)
{ count = count + 1;
/* 循环体 */
printf ("Enter the No.%d=", count); scanf ("%d", &num); total = total + num; /* 计算累加和 */ }
printf("Total=%d\n", total); }
while语句-实例
{ int i=1, j;
/* i:行计数器 j:列计数器 */
while ( i <= 9 )
/* 控制打印表头 */
printf ( "%4d", i++ );
printf ("\n------------------------------------\n");
i=1; while ( i<= 9 )
行某程序段,直到循环条件不满足为止, 重复执行的程序称为循环体; • 循环结构有“当型”和“直到型”两种形 式;
6.2 用while语句设计循环结构程序
while 语句:
形式: while(表达式K) {循环体S(由若干语句组成)}
N
K
Y
S
功能:先判断条件,当条件为真时反复执行循环 体,条件为假则退出循环。
C语言程序设计
计算机学院
第六章 循环结构的程序设计
• 6.1 循环的基本概念 • 6.2 用while语句设计循环结构程序 • 6.3 用do_while语句设计循环结构程序 • 6.4 用for语句设计循环结构程序 • 6.5 Break语句及continue语句 • 6.6 几种循环语句的比较 • 6.7 循环的嵌套
第六章循环控制结构
printf(“\n”);
}
}
2019/7/26
39/63
2.如何修改程序使其输出直角三角形?
#include <stdio.h> main() { int i,j,m;
scanf("%d",&m); for(i=1;i<=m;i++) {
for(j=1;j<=i;j++) printf("* ");
break; printf("n = %d\n", n); } printf("Program is over!\n"); }
2019/7/26
n ?-11?00? Please enter n:10↙ n = 10 Please enter n: -10↙ Program is over!
31/63
123645 << 66 tftraruulseee
n 23564
2019/7/26
sum ← sum + n
counter++ output sum
end
counter-controlled
计数器每次增1
使用了3个变量
6/63
2019/7/26
6.2计数控制的循环
counter ← initialValue
1!, 2!, 3!, … , n!
2019/7/26
24/63
【例6.5】输入两个整型数,计算并 输出两个整数的最大值
若用户不慎输入了非法字符,那么先清除输入缓冲区中 的内容,然后提示用户重新输入数据直到输入正确为止
scanf()返回值为正确读入的数据项数
循环结构程序设计习题及答案
第6章循环结构程序设计6-1.比较while语句、do–while语句和for语句的异同。
答:(1)while语句、do-while语句用于条件循环,for语句用于计数循环。
(2)while语句、for语句是先判断循环条件,后执行循环体,如果循环条件一开始就不成立,则循环体一次也不被执行;而do-while语句是是先执行循环体,后判断循环条件,所以循环体至少被执行一次。
(3)知道循环的次数可选用for语句实现循环,不知道循环的次数可选用while语句或do-while语句实现循环.(4)一般而言,三种循环语句可等价实现.6-2 仔细阅读下面的程序,指出程序的运行结果.#include<>void main(){ int i;for(i=0;++i;i<5){ if(i==3){printf("%d\n",++i);break;}printf("%d\n",++i);}}答:24思考:语句“for(“i=0;++i;i<5”)在编译时为何会给出语法警告错误当将其改为“for(i=0;i<5;++i)”时,运行结果又将如何6-3 仔细阅读下面的语的程序,指出程序的运行结果。
#include""void main(){ int i, a=0;for(i=1;i<=5;i++){do{i++;a++;} while(i<3);}i++;printf("a=%d,i=%d",a,i);}答:a=3,i=7思考:在for循环中嵌套着do-while循环,那么do-while循环中对i的修改会对for循环产生影响吗6-4编写程序,用1000个单词”computer”填充屏幕,每行60个 .解:#include<>void main(){ int i;for(i=1;i<=1000;i++){ printf("computer.");if(i%60==0)printf("\n");}}思考:在for循环中,”if(i%60==0)printf(“\n”);”语句的作用是什么没有此语句将会是什么状况6-5输入一行字符(以$结束),统计其中的数字字符、空格字符出现的次数。
pascal-for循环语句
第六课for循环语句在实际应用中,会经常遇到许多有规律性的重复运算,这就需要掌握本章所介绍的循环结构程序设计。
在Pascal语言中,循环结构程序通常由三种的循环语句来实现。
它们分别为FOR循环、当循环和直到循环。
通常将一组重复执行的语句称为循环体,而控制重复执行或终止执行由重复终止条件决定。
因此,重复语句是由循环体及重复终止条件两部分组成。
一、for语句的一般格式for <控制变量>:=<表达式1> to <表达式2> do <语句>;for <控制变量>:=<表达式1> downto <表达式2> do <语句>;其中for、to、downto和do是Pascal保留字。
表达式1 与表达式2的值也称为初值和终值。
二、For语句执行过程①先将初值赋给左边的变量(称为循环控制变量);②判断循环控制变量的值是否已"超过"终值,如已超过,则跳到步骤⑥;③如果末超过终值,则执行do后面的那个语句(称为循环体);④循环变量递增(对to)或递减(对downt o)1;⑤返回步骤②;⑥循环结束,执行for循环下面的一个语句。
三、说明①循环控制变量必须是顺序类型。
例如,可以是整型、字符型等,但不能为实型。
②循环控制变量的值递增或递减的规律是:选用to则为递增;选用downto则递减。
③所谓循环控制变量的值"超过"终值,对递增型循环,"超过"指大于,对递减型循环,"超过"指小于。
④循环体可以是一个基本语句,也可以是一个复合语句。
⑤循环控制变量的初值和终值一经确定,循环次数就确定了。
但是在循环体内对循环变量的值进行修改,常常会使得循环提前结束或进入死环。
建议不要在循环体中随意修改控制变量的值。
⑥for语句中的初值、终值都可以是顺序类型的常量、变量、表达式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
思考程序段的输出? …… while (i<=100) { i++; s=s+i; } 2019/1/8
运行后,输出: s=5150 原因是什么?
12
6.1 while语句
例:循环进行了多少次?输出的值? 结果 : *1 main( ) *2 { int number=0; **3 while(number++<=1) (1) printf(“*%der); (2) } 输出number 条件表达式 条件表达式 执行哪个 执行次数 中变量的值 printf语句 的值 1 0 (1) 1 2 1 (1) 2 3 2 (2) 3
2019/1/8
5
本章要点:
掌握while、do~while、for的格式与执行过程
理解术语:循环条件、循环结束条件、循环体 能够利用三种语句编写简单的循环结构程序 能够读懂for循环嵌套和break、continue语句构成的程序 并能得出正确的结果 重点:三种语句的格式和执行过程 难点:循环嵌套的执行过程、break、continue用法
2019/1/8
6.1 while 语句
总结
1、掌握while的格式与执行过程 2、分析出循环体 3、确定循环条件(或循环结束条件) 4、注意循环条件的表示(符合C语言的语法及其表达式的要 求) 5、明确循环变量及其初值 6、while小写,while后面小括号不能省略 7、循环体用{}括起来,如果循环体只有一条语句,则{}可以 省略 8、while后面的表达式可以是C任意类型的表达式
6.2 do while语句
程序运行结果: 桃子总数为:1534
2019/1/8
22
6.2 do-while语句
【例6.4】用辗转相除法求m和n的最大公约数 辗转相除法: 已知两个数M和N,假定M>N,则求M%N,若余数r 为0,则N即为是所求,若余数r不为0,用N除 r,再求 其余数……直到余数为0,则除数就是最大公约数。 如:m=15;n=12; r=m%n,即r=3,其值!=0,继续用 (n=12)%(r=3),其值为0 ,此时的3即为所求
主要内容:
6.1 while语句
6.2 do-while语句
6.3 for语句 6.4 循环嵌套 6.5 循环控制语句
6.2 do-while语句
1、格式
do {循环语句} while (表达式);
功能: 先执行内嵌语句(循环体),之后计算表达式的值,
不为0(逻辑真)时,再执行循环体并判断条件,直到表
6.2 do while语句
【例6.3】猴子第一天摘下若干个桃子,当天吃了一半,
还不过瘾,又多吃了一个。第二天早上又将剩下的桃子
吃掉一半,又多吃了一个。以后每天早上都吃了前一天 剩下的一半零一个。到第十天早上再想吃时,就只剩一 个桃子了。求第一天共摘了多少个桃子?
2019/1/8
20
分析过程:
青岛理工大学琴岛学院
第六章 循环控制语句
求任意一个整型数据的平方?
三个任意数的 平方如何求?
仔细观察右侧程序?
循环结构: 根据条件是否成立 决定是否重复执行某个程序段
主要内容:
6.1 while语句
6.2 do-while语句
6.3 for语句 6.4 循环嵌套 6.5 循环控制语句
2019/1/8
循环结构中的术语:
循环条件与循环结束条件 循环变量以及循环变量初值 循环体 避免死循环(循环体中有趋向于循环结束的语句)
6.1 while语句
说明:
while要小写,一对小括号不能省略 如果while的 (表达式) 值为0,则循环体一次也不执行 (例如当i的初值 =101) 。 循环的控制范围用{}限制 在循环体中必须有使循环趋向结束的操作,否则循环将无限进行(死 循环)。 在循环体中,语句的先后位置必须符合逻辑,否则会影响运算结果。
达式的值为 0 结束循环,转去执行while下面的语句。
2019/1/8
17
6.2 do-while语句
2、执行过程
流程图 循环体 Y
表达式非0? 注意i++的位置
N-S结构图
循环体
当表达式为真
N 用do-while语句 求100个自然数的和
2019/1/8 18
while与do while对比:
6.1 while语句
1、格式
while (表达式) {循环体语句}
一般为关系表达式 或逻辑表达式,也 可以是C语言其他类 型的合法表达式 用来控制循环体是 否执行 与if(表达式)区别
称为内嵌语句,可以 是基本语句、控制语 句,也可以是复合语 句 是循环重复执行的部 分 注意{}的有无
7
2019/1/8
6.1 while语句
功能: 计算表达式的值,为非 0 (逻辑真)时,重复执行内 嵌语句,然后重新计算表达式的值,直到表达式的值为 0 时结束循环,转去执行while结构后面的语句。
2、执行过程
流程图
循环控制条件
N-S结构图
当表达式为真
表达式非0?
N
语句
Y 语句
2019/1/8
2019/1/8 23
6.2 do-while语句
算法描述:
定义m、n、r m<n T F m和n交换 r=m%n m=n n=r 当r != 0时 输出最大公约数m
2019/1/8 8
6.1 while语句
【例 6.2】显示1~10的平方 运行结果: 1*1=1 2*2=4 3*3=9 4*4=16 5*5=25 6*6=36 7*7=49 8*8=64 9*9=81 10*10=100
14
#include <stdio.h> main() { int i=1; while(i<=10) { printf("%d*%d=%d\n",i,i,i*i); i++; }}
循环体
8
6.1 while语句
【例6.1】编写程序,求1-100这100个自然数的和 即: s=1+2+3+ … +100
思路:寻找加数与求和的规律
2019/1/8
9
6.1 while语句
算法和程序: i=1,s=0
当i <= 100
s=s+i
i++
输出s
程序输出结果: s=5050
10
i: 循环控制变量 s: 累加器