第5章 循环控制-1计数控制的循环——for语句
C语言 第五章-循环结构程序设计
执行过程如图所示。其中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 ” ) ; /*换行打印*/
For循环控制语句
For循环控制语句
For循环控制语句格式:
For 循环变量=循环初值 To 循环终值 [Step 循环步长]
[循环体]
[Exit For]
Next [循环变量]
功能:以指定次数来重复执行一组语句。
操作如下:
第一步,循环变量赋循环初值。
第二步,如果循环步长>0,测试循环变量是否大于循环终值;如果循环步长<0,测试循环变量是否小于循环终值。
步长默认为1。
是,转到Next的下一句运行。
(退出循环)
否,运行循环体。
如果循环体中有Exit For语句,运行到此句,直接转向Next
语句的下一句运行。
(退出循环)
运行到Next语句,循环变量=循环变量+步长。
转到第二步开始处运行。
(循环一次完成)
注意:
步长为负时,循环变量每加一次步长,值变小。
步长为零时,循环变量值不变,因此循环体内如果无Exit For 语句,则进入死循环。
在设计时运行程序进入死循环可以使用Ctrl+Break,终止程序执行。
在For循环语句中,For 和 Next是一对语句,必须成对出现,
缺一不可。
可以嵌套使用,但是循环变量名必须使用不同的变量名,而且不可以书写交叉的For循环语句。
循环控制语句
循环控制语句
循环控制语句是编程中用于控制循环执行流程的语句。
主要包含以下几种:
1. for循环:用于指定循环执行的次数,在循环开始前定义循环变量。
2. while循环:如果需要在循环执行的过程中根据条件判断是否继续执行,则使用该语句。
3. do-while循环:该循环至少会执行一次循环体,然后再根据判断条件决定是否继续执行循环体。
4. break语句:用于跳出循环,终止循环的执行。
5. continue语句:用于跳过循环中的某个迭代,继续执行下一次循环。
这些循环控制语句都是用来控制程序执行流程的,使得程序能够按照特定的逻辑流程执行,提高程序的效率和可读性。
循环结构及其应用
【编程思路】
定义变量i表示圆的半径,使其从1递增到10。循环中计算并判断每个圆的面积 值是否大于100,不大于100时,输出圆面积,如果大于100,则使用break 跳出循环即可。
【程序代码】
#include "stdio.h"
#define PI 3.14159
main( )
{
int r;
float area;
{
sum=sum+i; /*累加*/
i++;
/*变为下一个加数*/
} printf("sum=%d\n",sum); /*输出计算结果*/
}
5.2.2 do-while语句
❖ do-while语句属于直到型循环,其一般形式为:
do {
循环体语句 }while (表达式);
❖ do-while语句的执行过程是:
printf("%d is a prime number\n”,m); /* m是素数 */
else printf("%d is not a prime number\n”,m); /* m不是素数 */
}
本例中用到了breakБайду номын сангаас句。在switch语句中我们已 经接触过break语句,它的功能是终止选择执行, 跳出switch语句,那么在循环结构中使用break 语句,其作用是终止循环的执行,即跳出循环语 句。
main( )
{
int n;
for (n=100;n<=200;n++)
{ if (n%3!=0) /*判断n是否能被3整除*/ printf("%d ”,n); /*不能整除时输出n的值 */
第5章 循环结构程序设计
do-while语句的简单应用 do-while语句的简单应用
【例5.3】用辗转相除法求m和n的最大公约数 5.3】用辗转相除法求m
定义m、 、 定义 、n、r m<n T F m和n交换 和 交换 r=m%n m=n n=r 当r != 0时 时 输出最大公约数m 输出最: 算法和程序:
main( ) { int m,n,r; scanf("%d, %d",&m,&n); if (m<n) { r=m; m=n; n=r; } do { r=m%n; 程序运行情况如下: 程序运行情况如下: m=n; 24, 60 24, n=r; 12 }while(r!=0); while(r!=0 printf("%d\n",m); }
for语句的算法 for语句的算法
流程图 计算表达式1 计算表达式
表达式2 表达式 为真? 为真
15
N-S结构图 结构图 for (表达式 表达式 表达式 表达式1;表达式 表达式3) 表达式 表达式2;表达式 N 语句
Y 语句 计算表达式3 计算表达式
例如: 例如: 可部分或全部省略, 可部分或全部省略, main( ) 但“;”不可省略 { int i,sum; sum=0; for ( i=1; i<=100; i++) i=1 i<=100; sum=sum+i; sum=sum+i; printf("sum=%d\n",sum); }
龙诚数码:
18
for语句的简单应用 for语句的简单应用
【例5.4】求n! ,即计算p=1×2×3×…×n 5.4】 即计算p=1× 的值。 的值。
循环结构
第5章 循环----三类循环
for语句的一般形式为: for (<初始表达式>;<条件表达式>;<循环表达式>) { <循环体语句> } 1.计算<初始表达式>的值。该表达式是对循 环控制变量进行初始化。 2.判断<条件表达式>的值。该表达式就是循 环条件,若该表达式的值为“假”,则退出循 环,执行循环结构外的语句;若该表达式的值 为“真”,则执行<循环体语句>。 3.计算<循环表达式>的值。该表达式更新循 环控制变量的值。 4.转第2步。
课堂练习: 求1,1+2,1+2+3...... 数列中前n项的值
第5章 循环---数列问题
【例5-3】编写程序,从键盘输入x的值, x x , 直到最后一项 求 sin x x x 3! 5! 7! 绝对值小于le−7(即10−7)为止 (注:x为弧度值)。
3 5 7
开始
计算机导论A
第5讲 循环结构
第5章循环结构
1. for循环语句结构 2. while循环语句结构 3. do-while循环结构 4. break和continue语句的作用 5. 循环结构的嵌套 6. 案例分析
第5章 循环----导引
例5-1:计算10道简单的加、减、乘、除和取余的运算题
/*6-1 分支程序-----循环*/ #include<stdio.h> main() { int a,b,i,n; char op; printf("please input express:"); scanf("%d%c%d",&a,&op,&b); switch(op) { case '+':printf("%d+%d=%d\n",a,b,a+b); break; case '-':printf("%d-%d=%d\n",a,b,a-b); break; case '*':printf("%d*%d=%d\n",a,b,a*b); break; case '%':printf("%d%%%d=%d\n",a,b,a%b); break; case '/':if(b!=0) printf("%d/%d=%d\n",a,b,a/b); else printf("error\n"); break; }}
第五章 C语言多重循环语句ppt课件
scanf(“%f”,&Weight); /*第8个儿童的体重*/ total=total+ Weight; /*前8个儿童的总体重*/
scanf(“%f”,&Weight); /*第9个儿童的体重*/ total=total+ Weight; /*前9个儿童的总体重*/
unsigned n,sum=0; scanf(“%u”,&n); do { sum+=i ;
int i; float Weight, total=0, aver;
*输入N个儿童的体重并计算总体重*/
for(i=1;i<=N;i++) {
scanf(“%f”,&Weight); /*第i个儿童的体重*/ total=total+ Weight; /*i个儿童的总体重*/
}
aver=total/N;
scanf(“%f”,&Weight); /*第1个儿童的体重*/ total=total+ Weight; /*前1个儿童的总体重*/
scanf(“%f”,&Weight); /*第2个儿童的体重*/ total=total+ Weight; /*前2个儿童的总体重*/
scanf(“%f”,&Weight); /*第3个儿童的体重*/ total=total+ Weight; /*前3个儿童的总体重*/
/*10个儿童的平均体重*/
printf(“%d个儿童的平均体重是:%.2\n”,N,aver); }
第五讲循环结构(for、while与repeat语句)
第四章第3节循环结构的程序设计For循环在实际应用中,会经常遇到许多有规律性的重复运算,这就需要掌握本章所介绍的循环结构程序设计。
在Pascal语言中,循环结构程序通常由三种的循环语句来实现。
它们分别为FOR循环、当循环和直到循环。
通常将一组重复执行的语句称为循环体,而控制重复执行或终止执行由重复终止条件决定。
因此,重复语句是由循环体及重复终止条件两部分组成。
一、计数循环(for/to/do)语句的一般格式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则递减。
③所谓循环控制变量的值"超过"终值,对递增型循环,"超过"指大于,对递减型循环,"超过"指小于。
④循环体可以是一个基本语句,也可以是一个复合语句。
⑤循环控制变量的初值和终值一经确定,循环次数就确定了。
但是在循环体内对循环变量的值进行修改,常常会使得循环提前结束或进入死环。
50T-C-2-第5章_循环
5.2 用while语句和do-while语句实现循环 5.2.2 用do-while语句实现循环
一般形式: do 循环体语句 while(表达式); do-while语句的特点: 先执行循环体,然后判 断循环条件是否成立。
n
n 1
100
5.2 用while语句和do-while语句实现循环
说明:设计循环结构,要考虑两个问题:一是循环 体,二是循环结束条件。循环结束条件依赖于循环 变量的初值和增量。 注意while循环中判断的条件是循环继续的条件, 而不是结束条件。
循环的三要素?
循环变量的初值 循环条件 循环变量的增量
5.3 用for语句实现循环 5.3.1 for语句的一般形式和执行过程 • C语言中的for语句使用最为灵活,不仅可 以用于循环次数已经确定的情况,而且可
#include <stdio.h> void main() { int i,sum=0; i=1; while (i<=100) { sum=sum+i; i++; } printf("%d\n",sum); }
编写程序
说明:
(1)循环体如果包含一个以上的 语句,应该用花括号括起来,以 复合语句形式出现. (2)对循环变量i要控制好,初值 为1,循环条件为i<=100,在循 环体中有i++,否则结束不了. i也叫做循环计数器. (3)对累加器sum要注意初值为0, 每次循环sum+=i.
5.1 程序中需要用循环结构
问题1: y
n
n 1
100
什么是循环? 为什么要使用循环? 分数相加后除以课数
问题2:求学生平均成绩
第5章 循环结构程序设计PPT课件
}
C语言程序设计
第5章 循环结构程序设计
§ 5.2 用while语句实现循环i=1w; hile (i<=100)
2、while语句的注意事项
{ sum=sum+i;
注意:
i++; }
(1) 循环体如果包含一个以上的语句,应该用花括弧括
起来,以复合语句形式出现
(2) 在循环体中应有使循环趋向于结束的语句。如果无
C语言程序设计
第5章 循环结构程序设计
§ 5.2 用while语句实现循环
1、while语句的一般形式
while语句用来实现“当型”循环结构 一般形式: while (表达式)
循环体语句
当表达式为非0值时,执行while 语句中的循环体语句 其特点是:
先判断表达式,后执行语句
C语言程序设计
第5章 循环结构程序设计
} 运行结果:
}
1↙ sum=55 再运行一次:
}说明:当while后面的表达式的第一次的
值为“真”时,两种循环得到的结果相
11↙ sum=0
同。否则,二者结果不相同
C语言程序设计
第5章 循环结构程序设计
§ 5.4 用for语句实现循环
1、for语句的一般形式
C语言中的for语句使用最为灵活,不仅可以用于 循环次数已经确定的情况,而且可以用于循环次数 不确定而只给出循环结束条件的情况,它完全可以 代替while语句
语句,转到第(5)步
(3) 求解表达式3
(4) 转第(2)步骤继续执行
(5) 循环结束,执行for语句下面的一个语句
C语言程序设计
第5章 循环结
执行表达式1
循环初始条件
第5章 循环结构程序设计
运行结果:
printf("%d\n",sum);
sum = 5050
}
while语句和用do-while语句的比较:
一般情况,用while循环语句和用do -while循环语句处理问 题时,若循环体部分一样,结果也一样。但是如果while循 环语句循环条件一开始为“假”,则循环结果不同。while 循环语句一次也不执行,而do -while循环语句不论条件是 否成立,先执行一次循环体语句。
循环变量不增值。无终止地执行循环体。
例5-7用for语句求1 + 2 + 3 + … + 100
#include <stdio.h> void main() {
int i,sum=0; /*将累加器sum初始化为0*/ for(i=1; i<=100; i++) sum += i;/*实现累加*/ printf("sum=%d\n",sum); } 程序运行的结果为: sum=5050 解析:先执行变量赋初值,然后判定循环继续条件, 如果为“真”,执行循环体语句,i 为运算项目和循 环变量,执行完一次,增加一次,最后累加和。
if(n%3!=0) /*循环体*/
printf("%5d",n);
}
§5.4 多重循环
• 当循环中的内嵌语句是循环语句时,称为循 环的嵌套使用。内嵌的循环中嵌套循环,称 为多重循环。
C语言程序设计技术基础
第5章 循环结构程序设计
第5章 循环结构程序设计
5.1 while 循环语句 5.2 do while循环语句 5.3 for循环语句 5.4 多重循环 5.5 break语句与continue语句 5.6 几种循环语句的比较 5.7 循环结构程序举例
第5章 基本的控制结构(循环)
结束
图5-7
“九九乘法表”运行结果
结束
循环嵌套要注意以下事项: (1)在多重循环中,各层循环的循环控制变 量不能同名。但并列循环的循环控制变量名
可以相同,也可以不同。
(2)外循环必须完全包含内循环,不能交叉。
结束
下面的循环代码正确吗? For I=1 To 100 For I=1 To 100 For J=1 To 10 For I=1 To 10 „„ „„
结束
5.3.5 循环的退出
在某些情况下,为了减少循环次数或便 于程序调试,可能需要提前强制退出循 环。VB为For„Next和Do„Loop循环语句 提供了相应的强制退出循环的语句。
结束
Exit For语句:
用于For„Next循环,在循环体中可以出 现一次或多次。当系统执行到该语句时, 就强制退出当前循环。
结束
格式1的两种形式: Do {while} <条件> [<循环体>] Loop Do
当条件为真时, 执行循环体语句
{until} <条件> 当条件为真时,终 [<循环体>] 止执行循环体语句 Loop 说明: 格式1是先判断条件是否为真,然后执行。
结束
F
条件是否为真?
T
条件是否为真?
T
循环体
F
循环体
图2-3
Do While „Loop执行流程
图2-4
Do
Until „Loop执行流程
结束
格式2的两种形式: Do [<循环体>] Loop {while} <条件> Do
[<循环体>] Loop {until} <条件> 说明: 格式2是先执行循环体语句,然后判断条件。
C语言程序设计知识点—第5章 循环控制
4. 比较 while 和 do-while
while 循环和 do-while 循环的区别 语法不同 while ( 循环条件 ) { 循环操作 } 先判断,再执行 do { 循环操作 } while( 循环条件 ); 先执行,再判断
初始情况不满足循环条件时 1. while 循环一次都不会执行 2. do-while 循环不管任何情况都至少执行一次 [注]通常情况 while,do—while 可互换,但以下情况例外 #include “stdio.h” int main() { n=101; while(n<100) { printf(“n=%d\n”,n); } return 0; } 代码填空: 实现整数反转 #include<stdio.h> void main( ) { ~4~ #include “stdio.h” int main() { n=101; do { printf(“n=%d\n”,n); }while(n<100); return 0; }
C 语言程序设计知识点
主讲教师:杨剑
int i = 0; while (i < 4 ){ printf(“欢迎同学"); i ++ ; } } 问:循环一直执行,不会退出,哪里出错了? 注:永远都不会退出的循环称为死循环 循环的次数原则上应该是有穷的,也就是说,循环要有出口,否则成为死循环 /* 打印 4 次“欢迎同学” */ void main(){ int i= 1; while ( i <4 ){ printf ( “欢迎同学学员"); i ++; } } 问:只打印了三次 ,哪里出错了? 注:注意检查循环次数是否满足需求 /* 打印 4 次“欢迎同学” */ void main(){ int i = 0; while ( i > 5 ){ printf("欢迎欢迎同学"); i ++; } } 问:一次都没有打印,哪里出错了? 注意:如果一开始条件就不满足,while 循环一次都不执行 [课堂练习]找出 100 以内的奇数。 #include <stdio.h> int main() { int sum=0,i=1; while(i<=100) { sum=sum+i; i=i+2; } return 0; } [练习] 2006 年在校学生 1 万人,每年增长 25%,请问按此增长速度,到哪一年在校 学生人数将达到 10 万人? 提示: ~2~
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语言程序设计》课件 《C语言程序设计》课件 第5章-循环结构程序设计
Page 28
参考代码
#include<stdio.h> void main() {
char ch; int char_num=0,int_num=0,other_num=0; while((ch=getchar())!=‘\n’) //回车键结束输入 {
if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z') char_num++;
printf("************\n ");
printf("************\n ");
printf("************\n ");
printf("************\n "); printf("************\n "); 等价 for(int i=1;i<=8;i++)
{ s=s+i;
i++; //表达式3移至循环体末尾
}
printf("s=%d",s);
}
<<C语言程序设计>>
Page 19
随堂练习
例 编程计算n的阶乘。
n!=1 2 3 ……〔n-1〕 n
思路:
类似于累加求和,每一次循环乘上一个数字,求和 将和初始化为0,这里应把积初始化为?
<<C语言程序设计>>
#include "stdio.h" void main( ) { int i,sum=0;
循环控制ppt课件
提示:猜对了。 程序结束
系统产生数据
输入数据
太大了
是
x
y
printf(“太大了!\n“);
else
printf(“太小了!\n“);
if(y>x)
if(y<x)
#include <stdio.h> #include <time.h> #include <stdlib.h> void main() {int x,y; srand(time(0)); //以系统时钟作为随机种子 x=rand()%100; //产生随机数 }
j
%d
j,
{ }
for(j=1;j<=9;j++)
,j;
printf(“\n”);
printf(“\n”);
i*j
以上3种形式的循环结构可以相互嵌套。
1
一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。内嵌的循环中还可以嵌套循环,这就是多层循环。
2
4、循环结构的嵌套
3:输入一个任意位数的正整数,然后由低位到高位输出每一位上的数字。如输入456789,则输出9,8,7,6,5,4
引申练习:可以玩多次的猜数游戏,知道不想玩为止。
引申练习:输入一个任意位数的正整数,然后由高位到低位输出每一位上的数字。 如输入446789,则输出4,5,6,7,8,9
for( )
用来实现“当型”循环
流程图:
条件p
循环体
真
假
后续语句
1、循环结构之 ——while语句
形式: while (条件) { 循环体 }
练习:输出100以内所有整数。
#include <stdio.h> void main() {int i=1; while(i<100) { printf(“%d”,i); i=i+1; } }
c语言循环知识点总结
c语言循环知识点总结1. for循环for循环是C语言中最常见的循环结构之一,它的语法格式如下:```cfor (初始化表达式; 循环条件表达式; 循环控制表达式) {// 循环体}```其中,初始化表达式用于初始化循环变量,循环条件表达式用于判断是否继续执行循环,循环控制表达式用于更新循环变量的值。
在执行for循环时,首先执行初始化表达式,然后进行循环条件判断,如果循环条件为真,则执行循环体,并且在执行完循环体后执行循环控制表达式,然后再次进行循环条件判断,依次循环下去,直到循环条件为假为止。
例如,下面的代码展示了一个简单的for循环的例子:```cfor (int i = 0; i < 5; i++) {printf("Hello, world!\n");}```这段代码的输出结果是打印5次"Hello, world!"。
在使用for循环时需要注意以下几点:- 初始化表达式、循环条件表达式和循环控制表达式都可以是多个表达式,用逗号隔开。
- 循环体可以是一个语句块,用花括号括起来。
- 循环条件表达式的值必须是一个逻辑表达式,其值为真时循环继续执行,为假时循环结束。
- for循环的三个表达式都可以省略,但是分号必须保留,如for (;;) {},这样的for循环将会成为一个无限循环。
2. while循环while循环是另一种常用的循环结构,它的语法格式如下:```cwhile (循环条件表达式) {// 循环体}```在执行while循环时,首先对循环条件表达式进行判断,如果为真则执行循环体,然后再次对循环条件表达式进行判断,依次循环下去,直到循环条件为假为止。
例如,下面的代码展示了一个简单的while循环的例子:```cint i = 0;while (i < 5) {printf("Hello, world!\n");i++;}```这段代码的输出结果和上面for循环的例子是一样的。
第5章 循环控制-1计数控制的循环——for语句
C语言程序设计
第5章 循环控制 n
∑ i = 1 + 2 + 3 + ... + n
i =1
1 + 3 + 5... + ( 2n − 1)
#include <stdio.h> int main() { int i, sum = 0, n; printf("Input n:"); scanf("%d", &n); for (i=1; i<=n; i++) { sum = sum + i; } printf("sum = %d", sum); return 0; }
include <stdio.h> int main() { int i, sum = 0, m; for (i=0; i<5; i++) { scanf("%d", &m); sum = sum + m; } printf("sum = %d", sum); return 0; }
#include <stdio.h> int main() { int i, sum = 0, n; printf("Input n:"); scanf("%d", &n); for (i=1; i<=n; i++) { sum = sum + i*i; } printf("sum = %d", sum); return 0; }
否
是
输入 m sum = sum + m
输出 sum 结束
标记控制的循环——while和do-while语句-上传
第5章循环控制——while和do-while语句循环语句for语句while语句do-while 语句while 语句for (表达式1 ; 表达式2; 表达式3) { 语句1 语句2}循环初始条件表达式1;while (表达式2) {语句1 语句2 表达式3;}当型循环——Condition is tested firstdo-while 语句循环初始条件表达式1;while (表达式2) {语句1 语句2 表达式3; }当型循环——Condition is tested first表达式1; do {语句1 语句2 表达式3;}while (表达式2) ;直到型循环——Condition is tested lastA真假条件P 条件P条件PA 真A假先检票后上车先上车后检票显示每次#include <stdio.h>int main(){int i, sum = 0, m, n;printf("Input m:"); #include <stdio.h>int main(){int i, sum = 0, m, n;printf("Input m:"); 显示每次第5章循环控制讨论输入数据,显示每次累加的结果,直到输入0时为止。
修改下面这个用do-while语句实现的程序,改用while语句实现,并对比其优第5章循环控制。
循环语句与循环控制
循环语句与循环控制Turbo C 2.0提供三种基本的循环语句: for语句、while语句和do-while语句。
一、循环语句(一)、for循环它的一般形式为:for(<初始化>;<条件表过式>;<增量>)语句;初始化总是一个赋值语句,它用来给循环控制变量赋初值;条件表达式是一个关系表达式,它决定什么时候退出循环;增量定义循环控制变量每循环一次后按什么方式变化。
这三个部分之间用;分开。
例如:for(i=1;i<=10;i++)语句;上例中先给i赋初值1,判断i是否小于等于10,若是则执行语句,之后值增加1。
再重新判断,直到条件为假,即i>10时,结束循环。
注意:(1).for循环中语句可以为语句体,但要用{和}将参加循环的语句括起来。
(2).for循环中的初始化、条件表达式和增量都是选择项,即可以缺省,但;不能缺省。
省略了初始化,表示不对循环控制变量赋初值。
省略了条件表达式,则不做其它处理时便成为死循环。
省略了增量,则不对循环控制变量进行操作,这时可在语句体中加入修改循环控制变量的语句。
(3).for循环可以有多层嵌套。
例如:for(;;) 语句;for(i=1;;i+=2) 语句;for(j=5;;) 语句;这些for循环语句都是正确的。
main(){int i,j;printf(i j\n);for(i=0;i<2;i++)for(j=0;j<3;j++)printf(%d %d\n,i,j);}输出结果为:i j0 00 10 21 01 11 2用for循环求1+2+……+100的和:main(){int sn=0,i;for(i=1;i<=100;i++)sn+=i; /*1+2+……+100*/printf(%d\n,sn);}从程序可以看出,使用循环语句可以大大简化代码。
(二)、while循环它的一般形式为:while(条件)语句;while循环表示当条件为真时,便执行语句。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言程序设计
第5章 循环控制 n
∑ i = 1 + 2 + 3 + ... + n
i =1
n! = 1× 2 × 3 × ... × n
#include <stdio.h> int main() { int i, sum = 0, n; printf("Input n:"); scanf("%d", &n); for (i=1; i<=n; i++) { sum = sum + i; } printf("sum = %d", sum); return 0; }
C语言程序设计
第5章 循环控制 n
∑ i = 1 + 2 + 3 + ... + n
i =1
2 2 2 2 2 i 1 2 3 ... n = + + + ∑ i =1
n
#include <stdio.h> int main() { int i, sum = 0, n; printf("Input n:"); scanf("%d", &n); for (i=1; i<=n; i++) { sum = sum + i; } printf("sum = %d", sum); return 0; }
#include <stdio.h> int main() { int i, sum = 0, n; printf("Input n:"); scanf("%d", &n); for (i=1; i<=n; i+=2) { sum = sum + i; } printf("sum = %d", sum); return 0; }
C语言程序设计
第5章 循环控制 n
∑ i = 1 + 2 + 3 + ... + n
i =1
1 + 3 + 5... + ( 2n − 1)
#include <stdio.h> int main() { int i, sum = 0, n; printf("Input n:"); scanf("%d", &n); for (i=1; i<=n; i++) { sum = sum + i; } printf("sum = %d", sum); return 0; }
C语言程序设计
第5章 循环控制 n
∑ i = 1 + 2 + 3 + ... + n
i =1
1 + 3 + 5... + ( 2n − 1)
#include <stdio.h> int main() { int i, sum = 0, n; printf("Input n:"); scanf("%d", &n); for (i=1; i<=n; i++) { sum = sum + i; } printf("sum = %d", sum); return 0; }
C语言程序设计
第5章 循环控制
计算并输出1+2+3……+n的值
#include <stdio.h> int main() { int i, sum = 0, n; printf("Input n:"); scanf("%d", &n); for (i=1; i<=n; i++) { sum = sum + i; printf("i=%d,sum=%d\n",i,sum); } printf("sum = %d", sum); return 0; }
C语言程序设计
#include <stdio.h> int main() { int i, j, sum = 0, n; for (i=1,j=100; i<=j; i++,j--) { sum = sum + i + j; } printf("sum = %d", sum); return 0; }
C语言程序设计
第5章 循环控制
for语句
计数控制——Loop is controlled by a counter
表达式1
循环初始条件
循环控制条件
循环转化条件
表达式2?
否
for (表达式1 ; 表达式2; 表达式3)
{ 语句1 语句2 } 不要重复在循环体内 改变循环变量的值
C语言程序设计
是
语句1 语句2 表达式3 for后面第一条语句
C语言程序设计
#include <stdio.h> int main() { int i, sum = 0, m, n; printf("Input n:"); scanf("%d", &n); for (i=1; (i=0; i<=n; i<n; i++) for i++) { { scanf("%d", &m); sum == sum sum ++ i; m; sum } } printf("sum = %d", sum); return 0; }
5
10 15
C语言程序设计
第5章 循环控制
如何保证循环是可终止的?
#include <stdio.h> int main() { int i, sum = 0, m; for (i=0; i<5; i++) { scanf("%d", &m); sum = sum + m; } printf("sum = %d", sum); return 0; } #include <stdio.h> int main() { int i, sum = 0, m; for (i=5; i>0; i--) { scanf("%d", &m); sum = sum + m; } printf("sum = %d", sum); return 0; }
计数控制的循环
假设输入1,2,3,4,5
sum ← 1 3 6 10 15 sum + 0 1 3 6 10 m 1 2 3 4 5
循环计数 i 0 1 2 3 4 5
C语言程序设计
第5章 循环控制
为什么它能实现累加运算?
#include <stdio.h> i int main() { int i, sum = 0, m; m for (i=0; i<5; i++) { scanf("%d", &m); sum = sum + m; sum } printf("sum = %d", sum); return 0; } 4
第5章 循环控制
计算并输出1+2+3……+n的值
sum=0的作用?
#include <stdio.h> int main() { int i, sum = 0, m, n; printf("Input n:"); scanf("%d", &n); for (i=0; i<n; i++) { scanf("%d", &m); sum = sum + m; } printf("sum = %d", sum); return 0; }
执行循环体时必 须改变一个或多 个变量的值 保证经有限次重 复后,循环控制 条件不再满足
C语言程序设计
第5章 循环控制
如何实现n个键盘输入数据的累加?
循环次数n从键盘输入
#include <stdio.h> int main() { int i, sum = 0, m; for (i=0; i<5; i++) { scanf("%d", &m); sum = sum + m; } printf("sum = %d", sum); return 0; }
第5章 循环控制
计算并输出1+2+3……+n的值
#include <stdio.h> int main() { int i, sum = 0, n; printf("Input n:"); scanf("%d", &n); for (i=1; i<=n; i++) { sum = sum + i; printf("i=%d,sum=%d\n",i,sum); } printf("sum = %d", sum); return 0; }
C语言程序设计
第5章 循环控制
循环的控制方法
条件控制的循环 计数控制的循环 标记控制的循环 Condition Controlled Counter Controlled Sentinel Controlled