第四章 循环结构程序设计
《C语言程序设计课件》第四章-循环语句
{ sum+=n; scanf("%d",&n); }
printf("The sum is :%d\n",sum);
return 0; }
从任意 n 个实数中选出最大数 和最小数
从任意 n 个实数中选出最大数和最小数
#include <stdio.h> int main( ) {
/*程序4-1*/ #include <stdio.h> int main() {
int i,sum=0; i=1; while(i<=100) {
sum += i; i++; } printf("sum=%d\n",sum); return 0; }
【例4-2】输入一行字符以回车键结束,分别 统计出其中英文字母、空格、数字和其它字符 的个数。
#include <stdio.h> int main( ) {
int i,n;
printf("This program prints a table of squares.\n"); printf("Enter number of entries in table:");
scanf("%d",&n); i=1; while (i<=n)
【例】求整数1~100的累加和,使用for语句实 现。
#include <stdio.h> int main() {
int i,sum=0; for(i=1;i<=100;i++)
Pascal入门简介:第二课 Pascal入门(二)
Pascal入门简介:第二课Pascal入门(二)第四章、循环结构程序设计一、FOR语句格式:1、FOR <循环变量>:=<初值> TO <终值> DO <语句>;2、FOR<循环变量>:=<终值> DOWNTO <初值> DO <语句>。
[例1]:输入10个数,求最大值、最小值、和、及平均值。
PROGRAM ten(input,output);VAR a,s,max,min,avg:real;i:integer;BEGINwrite('please input:');read(a);s:=a;max:=a;min:=a;FOR i:=2 TO 10 DOBEGINread(a);s:=s+a;IF a>maxTHEN max:=aELSE IF a<条件> DO <循环体>[例2]:求s=1!+2!+3!+ (10)PROGRAM sum_fac(input,output);VAR i,j,s,m:integer;BEGINs:=0:for j:=1 to 10 dobegin m:=1;for j:=1 to i do m:=m*j;s:=s+m;end;write(……);END.二、while语句格式:WHILE <条件> DO <循环体>[例1]:输入一串字符串,求第一个“,”前的大小写字母个数和其它字符个数。
program string(input,output);varch:char;c,s,o:integer;beginwrite(……);read(ch);c:=0;s:=0;o:=0;while ch<>',' dobeginif (ch>='A')and(ch<='Z') then c:=c+1else if (ch>='a')and(ch<='z') then s:=s+1else o:=o+1;read(ch);end;write(……);end.三、REPEAT语句格式:REPEAT <循环体> UNTIL [例]:以字符(char)的形式读入一实数,以实形(re al)输出该数。
项目04 循环结构程序设计
while语句和do„while语句。本章是程序设计的重点内容,
重点培养读者的逻辑思维能力和程序编写基本能力。要求读 者能理解循环结构的工作过程,并且能用循环语句解决
项目四
循环结构程序设计
实际问题,提高编程能力。
【学习目标】
(1) 掌握for语句、while语句和do„while语句的使用。 (2) 掌握break语句和continue语句的使用。 (3) 能够利用循环语句解决实际问题。
所有商品的总价格;收银员每扫描一次,也就是把该商品的
价格输入给x,然后把x的值转移加入到s盒子里,重复操作, 直到收银员按回车键,在这里用“0”代表回车;最后输出s 盒子中的值,就可得到所有商品的总价格。
第一部分
任 务 学 习
【解决方案】
#include<stdio.h> void main() { float x,s=0;
注:从上面的说明可以看出,C语言的for语句功能强大,
使用灵活,可以把循环体和一些与循环控制无关的操作也都 作为表达式出现,程序短小简洁。但是,如果过分使用
(3) 循环。这样的语句一直重复写到h满足题目要求为
止。 程序代码如下:
第一部分
任 务 学 习
#include<stdio.h> void main() { double h=0.1; int n=0; /*n用来累计对折次数*/ while(h<=8848180) { h=h*2;
n=n+1;
} printf("对折次数为:%d,此时厚度:%.2f\n",n-1,h/2);
第一部分
一、while语句 二、for语句
任 务 学 习
第4章 循环结构程序设计ppt课件
第4章 循环结构程序设计
在解决实际问题的过程中,常常会遇 到一些需要重复处理的问题。循环结构可 用来处理需要重复处理的问题,所以,循 环结构又称为重复结构。
普通高等教育“十一五 ” 国家级规划教材
第4章 循环结构程序设计
4.1 循环的概念 4.2 while 语句 4.3 do…while循环 4.4 for循环 4.5 break语句和continue 4.6 4.7 程序举例 4.8 三种循环语句的比较
符中数字字符的个数。
(a) 流程图描述
(b) N-S图描述
4.2 while 语句
普通高等教育“十一五 ” 国家级规划教材
#include <stdio.h> void main() { char ch;
程序运行结果:
Press enter to end input <Enter> 5!a66bc7↙ 5667 num=4
4.3 do…while循环
普通高等教育“十一五 ” 国家级规划教材
#include <stdio.h> void main() { int num=0;
float score,sum=0,ave; printf("input score of student:\n"); scanf("%f",&score);
#include <stdio.h>
void main( )
{ int sum=0,i=1;
do
/* 开始执行循环 */
{ sum=sum+i;
/* 计算累加和 */
i++;
第四章 循环结构程序设计
while(i<=100)
{ i++;
程序运行结果: sum=5050
sum=sum+i;
}
6
4.3 do-while语句
do-while语句的结构 do 语句 while(表达式);
例如: do
x-=1; while(x>0);
功能:
1)执行“语句”。 2)计算“表达式”的值。如果值为非0,转1);否则转3)。
}
8
4.3 do-while语句
1)循环体如果包含一个以上的语句,要用复合语句表示。 2)在循环体中应有使循环趋于结束的语句。 3)while语句的特点是先执行循环体,然后判断表达式的值。 4)一般情况下,用while语句和用do-while语句处理同一 个问题时,若二者的循环体部分一样,其结果也一样。但如
18
4.7 goto语句以及用goto语句构成循环结构
goto语句的一般格式:
goto 语句标号;
例如: goto loop;
功能:程序执行到goto语句时,将程序流程转到语句标号指定的 语句去执行。
有标号的语句的格式:
语句标号: 语句
例如: loop: sum=sum+i;
19
4.7 goto语句以及用goto语句构成循环结构
【例4-9】用goto语句实现求1~100累加和。
#include <stdio.h>
main() { int n=1, sum=0; loop: sum += n; n++;
if(n<=100) goto loop;
printf("sum=%d\n",sum); }
chp4循环结构
第四章循环结构程序设计 (2)4.1引例——统计某门课程平均成绩 (2)4.2循环控制语句之一——while语句 (3)4.2.1使用while语句实现引例 (3)4.2.2while语句应用举例 (4)4.3循环控制语句之二——do while语句 (7)4.3.1使用do while语句实现引例 (7)4.3.2do while语句应用举例 (9)4.4循环控制语句之三——for语句 (10)4.4.1使用for语句实现引例 (10)4.4.2 for语句应用举例 (11)4.5break语句和continue语句 (13)4.6应用循环解决实际问题 (16)4.6.1使用循环嵌套统计学生的平均成绩 (16)4.6.2使用循环完善学生成绩管理系统菜单 (18)4.7小结 (20)习题 (21)上机实训 (23)阅读材料 (24)第四章循环结构程序设计在许多问题中会遇到大量具有规律性的重复运算,用C语言解决这样的问题就需要用到结构化程序设计的基本结构之一——循环结构。
在C语言中提供了专门用于循环的控制语句:while语句、do while语句和for语句。
本章着重介绍这三种循环语句及循环结构编程的基本思想。
4.1引例——统计某门课程平均成绩1.问题描述每学期末期,学生要参加考试。
考试结束后通常需要对各门课程的教学情况总结。
其中,统计所修课程的学生平均成绩是考察教学效果的重要评定参数。
假设计算机应用08班的40名同学选修了C语言程序设计,要求统计该门课程的平均成绩。
2.引例分析计算平均成绩的方法,是数学中求平均值的简单运算,即求出所有人成绩的总和,用人数去除总成绩可得结果。
具体步骤如下:1)主要变量的定义。
(1)设定变量sum存放总成绩,其初值为零,即sum=0;(2)设定变量score存放某位同学的成绩。
2)运算处理。
(1)输入第1位同学的成绩,在总成绩sum中计入其成绩,即执行语句:scanf("%d",&score);sum=sum+score;(2)接着,键入第2位同学的成绩存入变量score中,在已得总成绩值sum的基础上累加,即继续执行语句:scanf("%d",&score);sum=sum+score;(3)再输入第3位同学的成绩存入score,然后计入总成绩sum。
第四章。循环结构(while、do-while、for)
Top1.循环结构(while、do…while、for)1. 循环结构(while、do…while、for)1.1. 什么是循环结构在日常生活中,会有很多需要反复执行的事情,比如:每一年的4个季节,每一周的7天,每日的3餐,打印机每份文档打印50份,一圈跑道400米跑3圈,都是在反复执行的。
再看软件系统中的需求:问题1:输出100行语句,每行语句都一样,即:∙行动是成功的阶梯,行动越多,登得越高!∙行动是成功的阶梯,行动越多,登得越高!∙行动是成功的阶梯,行动越多,登得越高!…问题2:输出100行语句,每行语句都类似,即:∙第1,行动是成功的阶梯,行动越多,登得越高!∙第2,行动是成功的阶梯,行动越多,登得越高!∙第3,行动是成功的阶梯,行动越多,登得越高!∙…∙第100,行动是成功的阶梯,行动越多,登得越高!问题3:计算1到50乘以8.88的结果∙1×8.88 =8.88∙ 2 ×8.88 =17.76∙ 3 ×8.88 =26.64∙ 4 ×8.88 =35.52∙…∙50 ×8.88 =444诸如此类问题都是在反复执行的,在软件系统中可以通过循环这种语法结构来解决。
循环是程序设计语言中反复执行某些代码的一种计算机处理过程,是一组相同或相似语句被有规律的重复性执行。
对于循环来说,需要考虑两个要素,其一要素为循环体,也就是被反复执行的相同或相似的语句,其二要素为循环的条件,也就是循环得以继续执行下去的条件,常常以循环次数的方式体现。
常用的循环结构有:while、do-while、for。
1.2. while语句1.2.1. while语句的执行逻辑while语句是循环的一种常见语法结构,语法如下:1.while(boolean表达式){语句块;2.}while语句的执行过程为,首先计算boolean表达式的值,而后进行判断,若值为true则执行语句块,语句块执行完后再次判断boolean表达式的值,如果为true则继续执行语句块,如此循环往复,直到boolean表达式的值为false时退出while循环而执行while之后的语句。
C语言循环结构程序设计PPT课件
知识点精讲
printf(″%d\n″,fun(″056a0″)); } 【解析】 while循环是先判断条件,如果条件成立就执行语句,然后回到条件继续判断,直 到条件不成立就结束循环。while后的表达式为“*s<=′9′&&*s>=′0′”,当表达式的值为0时 循环结束,可以看出这道题就是把连续的数字字符转换成对应的数值,遇到非数字字符就结束, 所以最后的输出结果是56。 【答案】 56
知识点ቤተ መጻሕፍቲ ባይዱ讲
L7 i++; L8 } L9 printf("%f",s); L10 }
答案:第6行改成:{ s=s+1.0/i; //若不使用1.0/i,那么会把小数部分丢掉//
4.下列程序的运行结果是______2_,_-_1_____ #include "stdio.h" main) {int i=2,a=0; while ( i一) a++; printf ("% d,%d",a,i); }
第四章 循环结构程序设计
考纲要求
结构化程序的设计方法,for语句、while语句编程方法。
知识准备
高频考点:当型循环与直到型循环、循环控制变量、利用循环设计算法。 重难点分析:利用循环设计算法。
知识点精讲
知识点1 while循环
真题回顾 (2019年真题)下列程序的运行结果是___________ #include″stdio.h″ int fun(char s[]){ int n=0; while(*s<=′9′&&*s>=′0′) { n=10*n+*s-′0′; s++; } return n; } main(){
Python程序设计 第4章 循环结构程序设计(第6次课)
Copyright © SWFU-CISD, 2012. All rights reserved. 1-8
计算机编程导论
4.2 循环结构概述
(3)给定2个整数,求它们的最大公约数和最小 公倍数。例如:给定6和9,求最大公约数时, 循环过程从6依次பைடு நூலகம்减至1,当循环到3时,判 断得6和9都能被3整除,于是终止循环,求得 最大公约数是3.;求最小公倍数时,循环过程 从9依次递增至54,当循环到18时,判断得18 同时能被6和9整除,于是终止循环,求得最小 公倍数是18。
练习: 1. 求1+3+5+…+99 2. 求2*4*6*…*12
Copyright © SWFU-CISD, 2012. All rights reserved.
1-21
计算机编程导论
第6次上机作业: 1.计算,参考值: S=1.718282 1 1 1 S 1 1*2 1*2*3 1*2*3*50 2.编程求斐波拉契数列的前20项,已知该数列 的第一、二项分别是0、1,从第三项开始,每 一项都是前两项之和。例如:0, 1, 1, 2, 3, 5, 8, 13……
Copyright © SWFU-CISD, 2012. All rights reserved. 1-12
输出 s 结束 图 4-3 累加若干整数值的框图
计算机编程导论
程序:
#Exp4_1.py print '请输入若干正整数进行求和操作,当输入负数时结束: ' s=0 x = input("请输入一个整数: ") while x >= 0: s=s+x x = input("请输入一个整数: ") print '整数之和=', s
vb-4-循环结构程序设计-实例
lbldata
lblmax
第一章 第二章 第三章 第四章 第五章 第六章 第七章 第八章 第九章 第十章 第十一章 第四章
VB程序设计 VB程序设计
编程分析
处理第1 处理第1个数据
• 产生一个随机数,存放在变量a中 产生一个随机数,存放在变量a a = Int(Rnd * 100) + 1 lblData.Caption = a • 将a显示在标签(lblData)中 显示在标签(lblData) max = a • 将a作为当前最大值放在变量max中 作为当前最大值放在变量max中
VB程序设计 VB程序设计
【实例】输入若干成绩(输入-1时结束)计算 实例】输入若干成绩(输入总成绩和平均成绩 。
多 行 文 本 框
连续弹出输入框接收成 直至绩,直至-1时结束
Lblsum
Lblaverage
txtscore
计算总成绩和平均成绩
第一章 第二章 第三章 第四章 第五章 第六章 第七章 第八章 第九章 第十章 第十一章 第四章
VB程序设计 VB程序设计
程序说明
For-Next常用于循环次数已知的循环中 For-Next常用于循环次数已知的循环中 循环体语句可以是一条或多条语句 循环体语句可以是一条或多条语句 可以使用Exit For语句提前结束循环 可以使用Exit For语句提前结束循环
For i =1 To 10 x = x + Int( Rnd * 100 ) sum = sum + x If sum > 300 Then Exit For End If Next i Print sum
No
条件判断
Yes
循环体语句
第一章 第二章 第三章 第四章 第五章 第六章 第七章 第八章 第九章 第十章 第十一章 第四章
chap4循环结构程序设计课件
{ 语句 表达式3;
}
况下,可以使用while语 句;如果指定了循环次数, 则用for语句会使程序显 得简洁、清晰。
break continue 和goto语句
• C语言提供了break
while语句中
do-while语句中 for语句中break
break执行流程图 break执行流程图
执行流程图
{ if(i%n!=0)
for(i=100;i<=200;i++)
continue; printf("%d ",i); count++; if(count%10==0)
printf("\n");
{ if(i%n==0) {printf("%d ",i); count++; if(count%10==0) printf("\n");}
{
int i=1;
int sum=0;
loop: sum=sum+i; i++;
if(i<=100)goto loop;
printf("sum=%d\n",sum);
}
循环的嵌套
【例4-22】有两个红球,三个黄球,四个 白球,任意取四个球,其中必须有一个 红球,编程输出所有可能的方案。
for(i=1;i<=2;i++) for(j=0;j<=3;j++) { k=4-i-j; if(k>=0) printf("%5d%7d%8常用来修改循环控制变量的值, 表明循环控制变量每次变化的数值。
for语句与while语句比较
《C语言程序设计》2教学课件 第4章 循环结构程序设计
—7—
4.1 while循环
【例4.1】
计算从1到100的和。
#include<stdio.h> int main() {
int i,sum; sum=0; i=1; while(i<=100) {
sum=sum+i; i=i+1; } printf("1+2+3+...+99+100=%d",sum); return 0; }
表达式3
一般被称为“步长”,用于循 环变量的修改,该表达式是在 每次循环体执行完以后、下一 次循环条件判断之前执行的, 使循环变量经过多次循环的累 积而发生改变,最终因为不满 足循环条件退出循环。
— 26 —
4.3 for循环
【例4.7】
编程计算1到49之内的奇数和。
#include<stdio.h> int main() {
可将for循环语句改写为如下的while循环形式:
表达式1; while(表达式2) {
语句; 表达式3; }
例如:
for(i=1;i<=100;i++) sum=sum+i;
相当于:
i=1; while(i<=100) {
sum=sum+i; i++; }
— 28 —
4.3 for循环
因此,可以将例4.7用while语句进行改写如下:
/*定义及初始化变量*/ /*输出提示语*/ /*输入整数*/ /*如果输入的为负整数则取反*/
/*number整除10,即去掉最低位*/ /*位数加1*/ /*number不为0时循环*/ /*输出位数*/
第4章循环结构程序设计
提示: 使用Math.random()可以 产生0 ~ 1之间的随机数 int number=(int)(Math.rand om()*5); //产生0~4之间 的随机整数
方法二: import java.util.Scanner; public class Guess1 { public static void main(String[] args) { int count=0; //玩家猜对的次数 int guess; //玩家猜的数字 Scanner input = new Scanner(System.in); int i=1; //循环变量 while(i <= 3){ int number = (int)(Math.random()*5); //产生0~4之间的随机数 System.out.println("有一个0到4之间的整数,猜猜是什么?"); guess = input.nextInt(); //从键盘获取一个数字 if(guess == number){ System.out.println("猜对了!"); count++; }else { System.out.println("猜错了!"); } i++; } System.out.println("\n猜对"+count+"次!"); if(count==3||count==2) System.out.println("你太有才了!"); else if(count==1) System.out.println("很聪明呀!"); else System.out.println("多努力!"); } }
C语言程序设计(第3版)何钦铭-颜-晖-第4章-循环结构
第4章循环结构【练习4-1】在例4-1 程序中,如果对item 赋初值0,运行结果是什么?为什么?如果将精度改为10-3,运行结果有变化吗?为什么?解答:如果对item 赋初值0,则程序运行结果是pi=0,因为item 为0 时不满足while 循环的执行条件,即不执行循环,故pi 值为0。
如果将精度改为10-3,运行结果会有变化,因为精度改变意味着while 循环的条件改变,精度变大使得while 循环次数减少,必然影响到π的值。
【练习4-2】运行例4-2 程序时,如果将最后一个输入数据改为-2,运行结果有变化吗?如果第一个输入数据是-1,运行结果是什么?为什么?解答:如果将最后一个输入数据改为-2,运行结果没有变化,因为最后一个负数是一结束标志,不进行统计,故任意一个负数都可以。
如果第一个输入数据是-1,运行结果是:Grade averageis 0,因为第一个输入就是-1,则while 循环条件不成立,不执行循环体。
【练习4-3】序列求和(1-1/4+1/7-1/10+1/13-1/16+…):输入一个正实数eps,计算序列1-1/4+1/7-1/10+1/13-1/16+…的值,精确到最后一项的绝对值小于eps (保留6位小数)。
试编写相应程序。
解答:#include <stdio.h>#include <math.h>int main(void){int denominator, flag;double item, s,eps;printf(“Input eps:”);scanf(“%lf”,&eps);flag = 1;denominator = 1 ;item = 1.0;s = 0;while(fabs (item) >= eps) {item = flag * 1.0 / denominator;s = s + item;flag = -flag;denominator = denominator +3;}printf ( “s = %f\n”, s);return 0;}【练习4-4】如果将例4-3 程序中的do-while 语句改为下列while 语句,会影响程序的功能吗?为什么?再增加一条什么语句,就可以实现同样的功能?while(number != 0){number = number / 10;count ++;}解答:会有影响,因为当输入数据number 为0 时,上述while 循环将不执行,count 值仍为0,故输出为0,不符合题目要求。
第4章 循环结构程序设计
i++; }
4.2.2 for 语句的使用
3个表达式都可以省略。 for(;;) 即不设初值,不判断条件(认为循环条件永远为真),
循环变量不增值,无终止地执行循环体语句。
4.2.2 for 语句的使用
for (sum=0 ; i<=100; i++) sum=sum+i;
控制输出3行
for (j=1;j<=4;j++,n++)
{ if (n%4==0) printf (“\n”);
printf ("%d\t",i*j);
}
printf("\n");
return 0;
}
#include <stdio.h>
int main()
{ int i,j,n=0; for (i=1;i<=3;i++)
for(i=1;i<=30;i++) { scanf(“%f,%f,%f”,&score1,&score2,&score3); aver=(score1+score2+score3)/3; printf(“aver=%6.1f”,aver); }
➢大多数的应用程序都会包含循环结构
➢循环结构和顺序结构、选择结构是结构 化程序设计的三种基本结构,它们是各 种复杂程序的基本构造单元
scanf(“%d”,&i);
scanf(“%d”,&i);
while(i<=10)
do
信息学奥赛NOIP第4单元循环结构程序设计.ppt
高等教育出版社
信息学奥赛课课通(C++)
例1、用 do-while 语句实现输出一行 10 个“@”。
//p4-2-1 #include<cstdio> using namespace std; int main(){
高等教育出版社
信息学奥赛课课通(C++)
【样例输入】 5 5000 6077 【样例输出】 4
//p4-2-3 #include<iostream> using namespace std; int main(){
double r,m,y; int k = 0; cin >> r >> m >> y; do{
高等教育出版社
信息学奥赛课课通(C++)
例3、统计正数
【问题描述】 输入若干整数,以 0 结尾,统计其中有多少个正整数。 【输入格式】 一行若干整数,最后一个为 0。 【输出格式】 一行一个整数,表示输入的数据中正整数的个数。 【样例输入】 3 6 -3 2 0 【样例输出】 3
高等教育出版社
信息学奥赛课课通(C++)
//p4-3-1a #include<cstdio> using namespace std; int main(){
for(int i = 1; i <= 10; i++) printf( “ @ ” );
printf( “\n ” ); return 0; }
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
for(int h=1;h<=12;h++) { for(int m=1;m<=60;m++) for(int s=1;s<=60;s++) { ….. } }
4.5 循环结构的嵌套
【例4.1】输出九九乘法表 4.1】
j 1 i 1 2 3 1 2 3 2 2 4 6 3 3 6 9 4 4 8 12 5 5 10 15 6 6 12 18 7 7 14 21 8 8 16 24 9 9 18 27
循环体 while T expr F
i=1,sum=0 , 流程图 sum+=i i=i+1 i≤100 真 输出sum 输出 假
【例4.2】 用do_while语句求1~100的累计和。 4.2】 do_while语句求1 100的累计和。
#include <stdio.h> void main ( ) { int i = 1, sum = 0; do { sum += i; i++; } while ( i <= 100 ); printf ("sum = %d\n", sum); %d\ }
i=1,sum=0 , 流程图 假 i≤100 真 sum+=i i=i+1
输出sum 输出
【例4.3】 用for语句求1~100的累计和。 4.3】 for语句求1 100的累计和。
#include <stdio.h> <stdio.h> void main ( ) { int sum = 0; for(int for(int i=1;i<=100;i++) { sum += i; } printf ("sum = %d\n", sum); %d\ }
一般形式: 一般形式:
for (表达式1;表达式2;表达式3) (表达式 表达式1 表达式2 表达式3) 循环体语句; 循环体语句;
for
执行流程: 执行流程: for语句很好地体现了正确表达循环结构应注意的三个问题: for语句很好地体现了正确表达循环结构应注意的三个问题: 语句很好地体现了正确表达循环结构应注意的三个问题 控制变量的初始化。 控制变量的初始化。 其中: 其中: 循环的条件。 循环的条件。 for后面的括号 后面的括号( 循环控制变量的更新。 for后面的括号 。 不能省。 循环控制变量的更新( )不能省。
…………….. 9 9 18 27 36 45 54 63 72 81
#include <stdio.h> void main ( ) { int i, j; for (i = 1; i < 10; i++) for (j = 1; j < 10; j++){ printf("%4d",i * j); if(j==9){ printf("\ printf("\n"); } } }
自加运算符
4.3 do…while循环语句 循环语句
一般形式: 一般形式:
do 循环体语句; 循环体语句; while(表达式 表达式); while(表达式);
执行流程: 执行流程: 特点:先执行循环体,再判断表达式 特点:先执行循环体,
do
其中: 其中: while后面的括号( 不能省。 while后面的括号( )不能省。 后面的括号 while最后面的分号 不能省。 while最后面的分号;不能省。 最后面的分号; while后面的表达式可以是任意类型 while后面的表达式可以是任意类型 的表达式, 的表达式,但一般是条件表达式或逻辑 表达式。 表达式。 表达式的值是是循环的控制条件。 表达式的值是是循环的控制条件。 语句部分称为循环体,当需要执行多 语句部分称为循环体, 条语句时, 条语句时,应使用复合语句。
循环终值 循环条件 循环体
循环变量增值
运行结果: 运行结果: sum = 5050
#include <stdio.h> main() { int i=1,sum=0; while(i<=100) { sum=sum+i; i++; /* 每次i值增1 */ } printf("sum=%d\n",sum); }
如果是负数,不再累 加。跳出本次循环 运行结果: 运行结果: sum=45
假设输入的10个整数为 假设输入的10个整数为:1 2 3 –4 5 –6 7 8 9 10 个整数为:
4.6 break语句与continue语句
【例4.6】求从键盘上输入的10个数中所有正数之和。 4.6】求从键盘上输入的10个数中所正数之和 个数中所有正数之和。
如果是正数,实现累加 如果是负数,不能累加,输入下一个数字
#include <stdio.h> main() { int i,num,sum; sum=0; for( i=1;i<=10;i++) { printf("please input the %d num:",i); scanf("%d",&num); if(num<0) else } printf("sum=%d\n",sum); } continue; sum+=num;
第4章 循环结构程序设计 章
课时安排及课程目标
课时安排:
6学时
课程目标
了解循环结构的几种形式 掌握while语句 掌握 语句 掌握do…while语句 掌握 语句 掌握for语句 掌握 语句 掌握循环的嵌套 掌握break、continue语句 掌握 、 语句 了解if…goto构成的循环结构
4.1 循环结构程序设计的概念
几个概念
死循环 循环体 循环条件 循环终止条件
循环的分类
当型(while)、直到型(do-while)、步长型(for) 单循环、多循环(循环的嵌套)
4.2 while循环语句 循环语句
一般形式: 一般形式:
while (表达式) (表达式 表达式) 循环体语句; 循环体语句;
while
执行流程: 执行流程: 特点:先判断表达式,再执行循环体 特点:先判断表达式,
expr T 循环体
F
4.2 while循环语句
【例4.1】求1~100的累加和
1+2+3+4+5+6……+97+98+99+100 Step1:1+2= 3 Step2:3+3=6 Step3:6+4=10 Step4:10+5=15
i=1,sum=0 , 流程图 假 i≤100 真 sum+=i i=i+1
其中: 其中: while后面的括号 while后面的括号( )不能省。 后面的括号( 不能省。 while后面的表达式可以是任意类型 while后面的表达式可以是任意类型 的表达式, 的表达式,但一般是条件表达式或逻辑 表达式。 表达式。 表达式的值是是循环的控制条件。 表达式的值是是循环的控制条件。 语句部分称为循环体, 语句部分称为循环体,当需要执行多 条语句时, 条语句时,应使用复合语句。
真(非0) printf j++
i++
4.6 break语句与 语句与continue语句 语句与 语句
break语句:
功能:在循环语句和switch语句中,终止并跳出循环体或开关体 switch语句中 功能:在循环语句和switch语句中, 说明: 说明: break不能用于循环语句和switch语句之外的任何其它语 不能用于循环语句和switch (1) break不能用于循环语句和switch语句之外的任何其它语 句之中。 句之中。 break只能终止并跳出最近一层的结构。 只能终止并跳出最近一层的结构 (2) break只能终止并跳出最近一层的结构。 while (表达式1) 表达式1 { …… if (表达式2) 表达式2 break; break; …… } 语句…… 语句…… do { …… if (表达式2) 表达式2 break; break; …… } while (表达式1); 表达式1 语句…… 语句…… for (; 表达式1; ) 表达式1 { …… if (表达式2) 表达式2 break; break; …… } 语句…… 语句……
运行结果: 运行结果: sum = 5050
while和do_while的区别 while和do_while的区别
while语句的特点是:先判断表达式,后执行循环体。 do...while语句的特点是:先执行循环体,后判断表达式 while语句可能一次都不执行 do-while语句至少要执行一次
4.4 for循环语句 循环语句
【例4.5】 4.5】
#include <stdio.h> main() { int i=1,sum=0; while(i<10) { sum+=i++; if(sum>20) break; } printf("i=%d\n",i); }
当sum的值大于20时, 退出循环
continue语句:
功能:结束本次循环,跳过循环体中尚未执行的语句,进行下一 本次循环 功能:结束本次循环,跳过循环体中尚未执行的语句,进行下一 是否执行循环体的判断。 次是否执行循环体的判断。 说明: 说明: 仅用于循环语句中。 (1) 仅用于循环语句中。 在嵌套循环的情况下,continue语句只对包含它的 语句只对包含它的最内 (2) 在嵌套循环的情况下,continue语句只对包含它的最内 的循环体语句起作用。 层的循环体语句起作用。 for (…) { while (…) { …… if (…) continue; continue; …… } while循环后的第一条语句 while循环后的第一条语句 }