一、while 语句二、do-while 语句三、for 语句四、goto和if语句.

合集下载

第四章。循环结构(while、do-while、for)

第四章。循环结构(while、do-while、for)

第四章。

循环结构(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.882 ×8.88 =17.763 ×8.88 =26.644 ×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之后的语句。

循环语句的三种语句体

循环语句的三种语句体

循环语句的三种语句体
循环语句是计算机编程中常用的语句体之一。

它能够重复执行某段代码,直到满足停止条件为止。

循环语句包括三种语句体:for、while和do-while。

1. for语句体
for语句体是最常用的循环语句体之一。

它的语法形式如下:
for (初始化表达式; 循环条件; 循环后操作) {
// 循环体代码
}
初始化表达式在循环开始前执行一次,用于初始化循环变量。

循环条件判断每次循环是否继续执行。

循环后操作在每次循环结束后执行,用于更新循环变量。

2. while语句体
while语句体是另一个常用的循环语句体。

它的语法形式如下: while (循环条件) {
// 循环体代码
}
while语句体的循环条件只有一个,它会在每次循环开始前进行判断。

只有循环条件满足才能进入循环体,否则直接跳出循环。

3. do-while语句体
do-while语句体与while语句体有点类似,但是它的循环条件是在循环体执行之后判断的。

它的语法形式如下:
do {
// 循环体代码
} while (循环条件);
do-while语句体会先执行一次循环体,然后再判断是否继续循环。

即使循环条件一开始就不满足,do-while语句体也会执行一次循环体。

以上就是循环语句的三种语句体的介绍。

在实际编程中,我们可以根据具体场景选择不同的循环语句体,以达到最优的效果。

循环结构

循环结构
{ if (n%7!=0) continue;
printf("%d ",n);
}
}
编程小结



如何按要求输出几项后换行; 在程序设计中,常引入标志变量(或称开 关变量)来表征某个量“是”或“不是”; 课后习题6.1如何求最大公约数和最小公 倍数的算法:辗转相除法; 课后习题6.2,针对“输入一行字 符,……”的题目处理判断条件 while((c=getchar())!=„\n‟)
重要注意:

请认真阅读课本
P359—P363 P371—373
附录中关于上机事项的介绍;
作业
NO1: 编写程序,求1-3+5-7+…-99+101的值; 按正序和反序输出字母表;(只是一道题) 1 1 1 1 1 编写程序,求e≈ 1 ! 2 ! 3 ! n! ①用while循环,要求直到最后一项的值小 于10-4。 ②用for循环,计算前50项; ——此题目的:看哪种方法精度高。
(注意:赋初值时刻及{}包括的范围) 另:为考虑阅读的方便,请务必 注意书写时的缩进及层次
例:打印各种形状图形

***** ***** ***** * ***** *** *** ***** * 考虑:采用双重循环,一行一行输出。 每一行输出步骤:一般3步。 1)光标定位 2)输出图形 3)每输完一行光标换行(\n)

说明(此部分可自学,P111)

for语句使用非常灵活,可以省略“表达 式1”、“表达式2”、“表达式3”中的 几个或全部表达式,但2个“;”不
可省;


①省略“表达式1”:表达式1”的作用 是设定循环初始条件,“表达式1”省略 后,应在for语句前面设置循环初始条件; ②省略“表达式2” (即循环条件), 不判别循环条件,认为循环循环条件始

C++9种控制语句

C++9种控制语句

9种控制语句:goto语句:无条件转向;if语句:判断语句;while循环语句;do-while语句:先执行循环体,然后判断循环条件是否成立. 之后继续循环;for语句:循环,可替代while语句; 只是用法不同;break语句跳出本层的循环;(只调处包含此语句的循环)continue语句:继续(一般放到循环语句里,不在执行它下面的语句,直接跳到判断语句例:for语句,就直接跳到第二个分号处,while语句,就直接跳到while()的括号里;switch语句:多相选择;return语句:返回;32个关键字:auto :声明自动变量一般不使用double :声明双精度变量或函数int: 声明整型变量或函数struct:声明结构体变量或函数break:跳出当前循环else :条件语句否定分支(与if 连用)long :声明长整型变量或函数switch :用于开关语句case:开关语句分支enum :声明枚举类型register:声明积存器变量typedef:用以给数据类型取别名(当然还有其他作用)char :声明字符型变量或函数extern:声明变量是在其他文件正声明(也可以看做是引用变量)return :子程序返回语句(可以带参数,也看不带参数)union:声明联合数据类型const :声明只读变量float:声明浮点型变量或函数short :声明短整型变量或函数unsigned:声明无符号类型变量或函数continue:结束当前循环,开始下一轮循环for:一种循环语句(可意会不可言传)signed:生命有符号类型变量或函数void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)default:开关语句中的“其他”分支goto:无条件跳转语句sizeof:计算数据类型长度volatile:说明变量在程序执行中可被隐含地改变do :循环语句的循环体while :循环语句的循环条件static :声明静态变量if:条件语句32个运算符:1级优先级左结合() 圆括号[] 下标运算符-> 指向结构体成员运算符. 结构体成员运算符2级优先级右结合! 逻辑非运算符~ 按位取反运算符++ 前缀增量运算符-- 前缀增量运算符+ 正号运算符- 负号运算符(类型) 类型转换运算符* 指针运算符& 地址与运算符sizeof 长度运算符3级优先级左结合* 乘法运算符/ 除法运算符% 取余运算符4级优先级左结合+ 加法运算符- 减法运算符5级优先级左结合<< 左移运算符>> 右移运算符6级优先级左结合<、<=、>、>= 关系运算符7级优先级左结合== 等于运算符!= 不等于运算符8级优先级左结合& 按位与运算符9级优先级左结合^ 按位异或运算符10级优先级左结合| 按位或运算符11级优先级左结合&& 逻辑与运算符12级优先级左结合|| 逻辑或运算符13级优先级右结合? : 条件运算符14级优先级右结合= += -= *= /= %= &= ^= |= <<= >>= 全为赋值运算符15级优先级左结合,逗号运算符。

[工学]第05章 循环结构程序设计 (2)

[工学]第05章 循环结构程序设计 (2)
T
22
i=i+c
2019/2/17
例:#include<stdio.h> 例:#include<stdio.h> main( ) main( ) { int i=0; { int i=0; for(;i<10;i++) for(i=0;i<10;i++) putchar(‘a’+i); putchar(‘a’+i); } } 运行结果:abcdefghij
2019/2/17
21
(7)表达式2一般是关系表达式(如 for语句说明4 i<=100)或逻辑 表达式(如a<b&&x<y),但也可以是数值表达式 或字符表达式,只要其值为非零,就执行循环体。分 析下面两个例子: ①for ( i=0;(c=getchar( ))!=‘\n’;i+ =c); i=0 此 for语句的执行过程见图 ,它的作 用是不断输入字符,将它们的ASCII 取一个字 码相加,直到输入一个“换行”符为 符=>c 止。 F ② for( ;(c=getchar( ))!=‘ \ n’;) C≠换行符 printf(“%c”,c);
15
思考:该程序是什么功能?
2019/2/17
5.3 for语句
for循环语句是C语言中功能最强的循环语句,它有
多个变化形式,并且可以很方便的代替其它的循环语
16
句。 for语句的一般形式
for(表达式1;表达式2;表达式3)循环体语句
2019/2/17
17
for执行流程
①先计算初值表达式1,它主要 用于循环开始前设置变量初值; ②接着计算循环控制逻辑表达式 2,它控制循环条件,决定循环 次数; ③如果表达式2为真,则执行循 环体语句,否则结束for循环; ④求解表达式3,它主要是对循 环控制变量进行修改。 ⑤转步骤②执行。

C51单片机循环语句

C51单片机循环语句

C51单片机循环语句循环语句是几乎每个程序都会用到的,它的作用就是用来实现需要反复进行多次的操作。

如一个12M 的51 芯片应用电路中要求实现1 毫秒的延时,那么就要执行1000 次空语句才能达到延时的目的(当然能使用定时器来做,这里就不讨论),如果是写1000 条空语句那是多么麻烦的事情,再者就是要占用很多的存储空间。

我们能知道这1000 条空语句,无非就是一条空语句重复执行1000 次,因此我们就能用循环语句去写,这样不但使程序结构清晰明了,而且使其编译的效率大大的提高。

在 C 语言中构成循环控制的语句有while,do-while,for 和goto 语句。

同样都是起到循环作用,但具体的作用和使用方法又大不一样。

我们具体来看看。

goto 语句这个语句在很多高级语言中都会有,记得小时候用BASIC 时就很喜欢用这个语句。

它是一个无条件的转向语句,只要执行到这个语句,程序指针就会跳转到goto 后的标号所在的程序段。

它的语法如下:goto 语句标号; 其中的语句标号为一个带冒号的标识符。

示例如下void main(void){unsigned char a;start: a++;if (a==10) goto end;goto start;end:;}上面一段程序只是说明一下goto 的使用方法,实际编写很少使用这样的手法。

这段程序的意思是在程序开始处用标识符“start:”标识,表示程序这是程序的开始,“end:”标识程序的结束,标识符的定义应遵循前面所讲的标识符定义原则,不能用C 的关键字也不能和其它变量和函数名相同,不然就会出错了。

程序执行a++,a 的值加1,当 a 等于10 时程序会跳到end 标识处结束程序,不然跳回到start 标识处继续a++,直到 a 等于10。

上面的示例说明goto 不但能无条件的转向,而且能和if 语句构成一个循环结构,这些在 C 程序员的程序中都不太常见,常见的goto 语句使用方法是用它来跳出多重循环,不过它只能从内层循环跳到外层循环,不能从外层循环跳到内层循环。

项目五 循环结构程序设计

项目五 循环结构程序设计

图5-10 多循环的并列与嵌套
任务4 掌握循环结构程序设计实例
【例5-7】输出10~100之间的全部素数。所 谓素数n,是指除1和n之外,不能被2~(n-1) 之间的任何整数整除。 算法设计要点: (1)显然,只要设计出判断某数n是否是素 数的算法,外面再套一个for循环即可。
(2)判断某数n是否是素数的算法:根据素数 的定义,用2~(n-1)之间的每一个数去整除n, 如果都不能被整除,则表示该数是一个素数。 判断一个数是否能被另一个数整除,可通过判 断它们整除的余数是否为0来实现。
二、continue语句 continue语句的一般形式为: continue; continue只能用在循环语句中,它的功能是 结束本次循环,跳到循环体中下面尚未执行的语 句,接着进行下次是否执行循环的判定。
continue语句的功能:对于for循环,跳过循环 体其余语句,转向循环变量增量表达式的计算;对 于while和do-while循环,跳过循环体其余语句,但 转向循环继续条件的判定,也就是说continue语句 用在循环中时不会强制退出循环,但它会跳过循环 体中剩余的部分而转去循环的结尾部分,强制开始 下一轮循环。
普通高等教育“十二五”规划教材·计算机专业
C语言程序设计
主编 刘孟强 李思广
兴趣是最好的老师
知识有限创意无限 欢迎大家学习
C语言程序设计
项目五 循环结构程序设计
任务1 掌握循环结构语句
任务2 掌握break与continue语句
任务3 掌握多重循环
任务4 掌握循环结构程序设计实例
任务1 掌握循环结构语句
由于循环结构在现实生活中和数学运算中比 较常用,并且较之顺序结构和选择结构比较难, 所以要认真学习这一项目。

C语言32个关键字九种控制语句34种运算符

C语言32个关键字九种控制语句34种运算符

第一个关键字:auto用来声明自动变量。

可以显式的声明变量为自动变量。

只要不是声明在所有函数之前的变量,即使没加auto关键字,也默认为自动变量。

并且只在声明它的函数内有效。

而且当使用完毕后,它的值会自动还原为最初所赋的值。

自动变量使用时要先赋值,因为其中包含的是未知的值。

例:auto int name=1;第二个关键字:static用来声明静态变量。

可以显式的声明变量为静态变量。

也为局部变量。

只在声明它的函数内有效。

它的生命周期从程序开始起一直到程序结束。

而且即使使用完毕后,它的值仍旧不还原。

即使没有给静态变量赋值,它也会自动初始化为0.例:static int name=1.第三个关键字:extern用来声明全局变量。

同时声明在main函数之前的变量也叫全局变量。

它可以在程序的任何地方使用。

程序运行期间它是一直存在的。

全局变量也会初始化为0.例:extern int name;第四个关键字:register用来声明为寄存器变量。

也为局部变量,只在声明它的函数内有效。

它是保存在寄存器之中的。

速度要快很多。

对于需要频繁使用的变量使用它来声明会提高程序运行速度。

例:register int name=1;第五个关键字:int用来声明变量的类型。

int为整型。

注意在16位和32位系统中它的范围是不同的。

16位中占用2个字节。

32位中占用4个字节。

还可以显式的声明为无符号或有符号:unsigned int signed int .有符号和无符号的区别就是把符号位也当作数字位来存储。

也可用short和long来声明为短整型,或长整行。

例:int num;第六个关键字:float用来声明变量的类型。

float为浮点型,也叫实型。

它的范围固定为4个字节。

其中6位为小数位。

其他为整数位。

例:float name;第七个关键字:double用来声明为双精度类型。

它的范围为8个字节。

14位为小数位。

也可使用更高精度的long double 它的范围则更大,达到10字节。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

表达式 0 (假)
执行过程:
执行内嵌语句A,在判断表达式(条件)若为真,则 继续执行内嵌语句A,再判断表达式(条件)· · · ,直到表 达式的值为假时,执行do-while后面的语句。
与while语句的不同:
do-while语句至少执行循环体一次,但while语句当 条件为假时不执行循环体语句。
循环条件改变语句
printf("s=%ld\n", s);
输 出s
}
注意:
如果循环体中包含一个以上的语句,应该用花括弧 括起来,以复合语句的形式出现。如果不加花括弧,则 while语句的范围只到while后的第一个分号处。 在循环体中应该有使循环趋向结束的语句,否则会 导致死循环。 如上例中的语句改写 成如下形式:
求和表达式: 初值: 循环次数 i :
S=S+i S=0 1~100
流程图:
定义 变 量 s , i
程序: main ( ) { int s, i;
s=0, i=1;
s = 0,i = 1;
N
i≤ 100
while ( i < = 100 )
Y
s+=i;
{ s+=i;
i++; }
循环条件控制语句
i++;
6.4 for 语句
for 语句格式:
for ( [ 表达式 1] ;表达式2 ;[ 表达式3])
初值。 表达式2 :判断循环条件,若省略,则认为循环条件恒为"真"。
表达式3 :修改循环变量的值。
语句 :循环体
流程图:
表达式1
表达式2 真 语句

表达式3
则while语句的循环体语句为:
s+=i; 循环变量i的值没有改变,循 环不能终止,陷入死循环
i=1;
while ( i < = 100 ) s+=i; i++;
6.4 do-while 语句
do-while 语句格式: do < 语句A ;>
while ( < 条件 > ); 流程图:
语句 A
非 0 (真)
while语句的说明:
(1) while语句属当型循环,即先 判断条件(表达式),再执行循环体。
0 (假)
(2) 表达式为一条件,用于控制循 环是否可继续执行,故称控制表达式。 (3) 语句A为内嵌式语句,是循环结 构的循环体。它可以是单语句也可以 是复合语句,且该语句中必须包含有 对循环条件进行修改的语句。
Y s *= i
i++
printf("s=%ld\n", s);
}
输 出 s
例6.6:求 水仙花数,即这个数等于它的百位、十 位和个位数的立方和。 3 3 3 如153是一个水仙花数,因为153=1 5 3 分别用三种循环语句编写该程序。
求阶乘表达式: 初值: 循环次数 i :
S=S×i S=1 1~n
流程图:
定 义 符号 常量 N
程序:
#define N 10
定义 变 量 n, i, s
main ( )
{ int n , i;
N
s=1; i=1
i≤ N
long int s=1; for ( i=1; i<=N; i++ ) s *= i;
如:for (i=1; ;i++) sum=sum+i;
它相当于:i=1;
while (1)
该循环是死循环
{sum=sum+i;
i++;}
如:for (i=1; i<100; 如:for (
; i<100;
)
{sum=sum+i; i++;}
)
在循环体内修改循环变 量,循环可以正常终止
{sum=sum+i; i++;} 相当于: while (i<100)
表达式
非0 (真)
语句A
例6.1 求 1 + 2 + · · · · · ·+ 100
分析: 求和的过程为:
1) S=1 2) S=1+2 3) S=1+2+3 · · · · · · 100) S=1+2+ · · · +100 S0 = 0 S1 = S0 + 1 S2 = S1 + 2 S3 = S2 + 3 · · · · · · S100 = S99+100
例:while与do-while区别
#include <stdio.h> main( ) {int i=65; #include <stdio.h> main( ) {int i=65;
while(i<‘A’)
{putchar(i); }
无输出
do{putchar(i);
i++; } }
输出A
i++;}while(i<‘A’);
{sum=sum+i;
(1)在循环语句前给循环变 量赋初值 (2)循环体内修改循环变量
i++;}
例6.5:求 n!
分析: 求阶乘的过程为:
1) S=1 2) S=1×2 3) S=1×2×3 · · · · · · n) S=1×2× · · · ×n S0 = 1 S1 = S0 × 1 S2 = S1 × 2 S3 = S2 × 3 · · · · · · Sn = Sn-1×100
6.1 概述
一、while 语句 二、do-while 语句 三、for 语句 四、goto和if语句
6.2 goto语句以及用goto语句构成循环
goto语句格式: goto 语句标号 ;
· · · · · ·
标号:语句 ; 作用: 1)与 if 语句构成循环结构。 2)从循环体中强制退出。
说明: 1)goto语句为无条件转向语句。 goto语句可 以从循环体内跳出循环,尤其在多层循环中, 使用goto语句可以跳到任意一层循环体内。
2)标号的命名规则同变量名。
3)goto语句不符合结构化程序设计原则,一 般不主张使用。
6.2 while 语句
while 语句格式:
while (< 表达式 >) 语句A; 流程图:
表达式 0 (假)
非 0 (真) 语句 A
若表达式(条 件)的值为真,则 执行内嵌语句A, 再判断表达式(条 件)· · · ,当表达式 的值为假时,执行 while后面的语句。
For循环的 下一语句
说明:
for语句的一般形式中的“表达式1”可以省略。 此时应该在for语句之前给循环变量赋初值。 如果表达式2省略,即不判断循环条件(认为表达 式始终为真),循环会无终止的运行下去。
表达式3省略时,应另外设置条件保证循环能正常 结束。如在循环体内修改循环变量。
表达式1和表达式3可以是简单的表达式,也可以 是一个逗号表达式;它可以与循环变量有关,也可以与 循环变量无关。
相关文档
最新文档