最新C语言循环语句汇总

合集下载

c中for用法

c中for用法

c中for用法在C语言中,for是一种常用的循环结构,用于重复执行一段代码块。

for循环由三个关键组成部分组成:初始化表达式、循环条件和更新表达式。

本文将介绍for循环的用法,并探讨一些常见的应用场景。

一、基本用法for循环的基本语法如下所示:```for (初始化表达式; 循环条件; 更新表达式) {// 循环体}```其中,初始化表达式用于初始化循环变量;循环条件是一个逻辑表达式,用于控制循环是否继续执行;更新表达式用于更新循环变量的值。

循环体中的代码会在每次循环迭代时执行。

下面是一个简单的示例,演示了for循环的基本用法:```#include <stdio.h>int main() {int i;for (i = 0; i < 5; i++) {printf("%d ", i);}return 0;}```输出结果为:0 1 2 3 4 。

可以看到,循环变量i的初始值为0,每次循环增加1,当循环条件i < 5不满足时,循环结束。

二、复杂用法除了基本用法,for循环还可以用于处理更复杂的情况。

例如,可以在初始化表达式和更新表达式中声明和操作多个变量。

下面是一个示例,演示了如何使用for循环计算斐波那契数列:```#include <stdio.h>int main() {int n, i;int fib[20]; // 用于存储斐波那契数列的数组fib[0] = 0; // 初始化斐波那契数列的前两个元素fib[1] = 1;printf("请输入要计算的斐波那契数列的项数:");scanf("%d", &n);for (i = 2; i < n; i++) {fib[i] = fib[i - 1] + fib[i - 2]; // 计算斐波那契数列的当前项}printf("斐波那契数列的前%d项为:", n);for (i = 0; i < n; i++) {printf("%d ", fib[i]);}return 0;}```该程序首先通过用户输入确定要计算的斐波那契数列的项数,然后使用for循环计算并打印斐波那契数列的前n项。

c语言中的循环语句

c语言中的循环语句

c语言中的循环语句C语言中的循环语句是程序设计中非常重要的一部分,它可以让程序重复执行某些操作,从而提高程序的效率和灵活性。

下面是我总结的10个常用的循环语句,希望对大家有所帮助。

1. for循环语句for循环语句是C语言中最常用的循环语句之一,它的语法格式如下:for (初始化表达式; 条件表达式; 更新表达式){循环体语句;}其中,初始化表达式只会在循环开始时执行一次,条件表达式会在每次循环开始前进行判断,如果为真则执行循环体语句,否则跳出循环。

更新表达式会在每次循环结束后执行一次,然后再次进行条件判断。

2. while循环语句while循环语句也是C语言中常用的循环语句之一,它的语法格式如下:while (条件表达式){循环体语句;}其中,条件表达式会在每次循环开始前进行判断,如果为真则执行循环体语句,否则跳出循环。

3. do-while循环语句do-while循环语句和while循环语句类似,但是它的循环体语句至少会执行一次,它的语法格式如下:do{循环体语句;} while (条件表达式);其中,循环体语句会在条件表达式判断之前至少执行一次,然后再根据条件表达式进行判断,如果为真则继续执行循环体语句,否则跳出循环。

4. break语句break语句可以用来跳出循环,它的语法格式如下:break;当程序执行到break语句时,会立即跳出当前循环,继续执行下面的语句。

5. continue语句continue语句可以用来跳过当前循环中的某些语句,继续执行下一次循环,它的语法格式如下:continue;当程序执行到continue语句时,会跳过当前循环中的剩余语句,然后继续执行下一次循环。

6. goto语句goto语句可以用来跳转到程序中的某个标签处,它的语法格式如下:goto 标签名;其中,标签名是程序中的一个标识符,用来标记某个位置。

7. switch语句switch语句可以用来根据不同的条件执行不同的语句,它的语法格式如下:switch (表达式){case 常量1:语句1;break;case 常量2:语句2;break;...default:语句n;break;}其中,表达式的值会和每个case后面的常量进行比较,如果相等则执行对应的语句,如果没有匹配的常量则执行default后面的语句。

C语言三种循环语句

C语言三种循环语句

C语言三种循环语句三种基本的循环语句: 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 );for(i=0;i<2;i++)for(j=0;j<3;j++)printf(%d %d ,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 ,sn);}从程序可以看出,使用循环语句可以大大简化代码。

(二)、while循环它的一般形式为:while(条件)语句;while循环表示当条件为真时,便执行语句。

c语言while用法

c语言while用法

c语言while用法在C语言中,while循环是一种常用的控制结构,用于重复执行一段代码,直到满足某个条件为止。

while循环在需要重复执行某个任务时非常有用,例如计算总和、处理一系列数据等。

下面将详细介绍while循环的用法。

一、while循环的基本语法while循环的语法结构如下:```cwhile(条件){//循环体语句}```其中,条件是判断循环是否继续的条件表达式。

如果条件为真,则执行循环体语句,否则跳出循环。

二、while循环的用法1.初始化变量:在循环开始前,可以使用while循环初始化一些需要使用的变量。

例如,可以初始化计数器变量,用于记录循环执行的次数。

```cintcount=0;while(count<10){//循环体语句count++;}```2.计算总和:使用while循环可以方便地计算一组数据的总和。

循环变量初始化为0,每次循环将当前数值加到循环变量上,直到满足终止条件为止。

```cintsum=0;intnums[]={1,2,3,4,5};intn=sizeof(nums)/sizeof(nums[0]);while(count<n){sum+=nums[count];count++;}printf("总和为:%d",sum);```3.处理一系列数据:使用while循环可以方便地处理一系列数据。

例如,可以使用while循环遍历一个数组,并对每个元素执行一些操作。

```cintarr[]={1,2,3,4,5};intn=sizeof(arr)/sizeof(arr[0]);inti;for(i=0;i<n;i++){printf("%d",arr[i]);if(i%2==0){//处理偶数元素的操作}else{//处理奇数元素的操作}}```三、注意事项1.避免无限循环:在使用while循环时,需要确保条件表达式的值最终会变为假,否则会导致无限循环。

c语言中for循环语句的用法

c语言中for循环语句的用法

c语言中for循环语句的用法一、基础概念及语法结构C语言中的循环语句play a crucial role in program flow control. 最常用的循环语句之一就是for循环。

在C语言中,for循环经常被用来重复执行相同的代码块,可以根据条件判断决定是否继续执行。

1. for循环的基本结构for循环由三个部分组成:初始化表达式、循环条件和增量表达式。

其基本形式如下:```for (初始化表达式; 循环条件; 增量表达式) {// 代码块}```其中,初始化表达式在循环开始前进行初始化;循环条件会在每次迭代开始时进行检查,如果为真,则继续执行;增量表达式则会在每次迭代结束后执行,通常用于更新计数器或变量的值。

2. for循环示例下面是一个使用for循环输出数字1到5的简单示例:```c#include <stdio.h>int main() {int i;for (i = 1; i <= 5; i++) {printf("%d ", i);}return 0;}```以上代码将输出结果为:"1 2 3 4 5"。

通过设置初始化表达式为`i = 1`,循环条件为`i <= 5`,增量表达式为`i++`,实现了从1到5的输出。

二、常见用法示例和技巧除了基本的使用方式外,for循环还可以通过一些技巧来灵活运用,提高代码的可读性和效率。

1. 控制循环次数通过在循环条件中增加计数器并设置相应的结束条件,可以控制循环的次数。

例如,如果我们想要输出0到9之间的偶数,则可以使用以下代码:```c#include <stdio.h>int main() {int i;for (i = 0; i < 10; i += 2) {printf("%d ", i);}return 0;}```上述代码中,初始化表达式为`i = 0`,循环条件为`i < 10`,每次增加2。

c语言for循环语句例题及解析

c语言for循环语句例题及解析

标题:深度解析C 语言中的 for 循环语句及例题在C 语言编程中,for 循环语句是最常用的循环结构之一。

它可以让程序重复执行一段代码,直到达到指定的条件。

在本文中,我将深入探索 C 语言中 for 循环语句的概念、语法结构和实际应用,并通过例题解析帮助您更好地理解和掌握这一重要的编程知识。

1. for 循环语句的基本结构在C 语言中,for 循环语句的基本结构如下:```for (初始化表达式; 条件表达式; 更新表达式){循环体语句;}```其中,初始化表达式用于初始化循环变量的初始值;条件表达式是循环执行的条件,如果条件为真,则执行循环体语句;更新表达式用于更新循环变量的值,以便控制循环的次数。

2. for 循环语句的实际应用下面通过一个简单的例题来演示 for 循环语句的实际应用场景:```#include <stdio.h>int main() {int i;for (i=1; i<=5; i++) {printf("This is iteration %d\n", i);}return 0;}```在以上示例中,我们使用 for 循环语句实现了输出 "This is iteration i" 的功能,其中 i 从 1 到 5 依次递增。

通过这个例题,我们可以清晰地看到 for 循环语句的执行过程和效果。

3. for 循环语句的深入解析在实际编程中,for 循环语句还可以嵌套使用,或者与 break、continue 等关键字配合使用,以实现更复杂的控制流程。

我们还可以在条件表达式中使用逻辑运算符或者关系运算符,以实现更灵活的循环控制。

这些深入的应用将在后续的例题中逐一讲解。

总结 & 理解通过本文的深度解析和相关例题的讲解,相信您已经对 C 语言中的for 循环语句有了更加全面和深入的了解。

在实际开发中,for 循环语句是必不可少的一部分,熟练掌握它将有助于提高编程效率和代码质量。

c语言循环控制语句

c语言循环控制语句

c语⾔循环控制语句循环控制结构(⼜称重复结构)是程序中的另⼀个基本结构.在实际问题中,常常需要进⾏⼤量的重复处理,循环结构可以使我们只写很少的语句,⽽让计算机反复执⾏,从⽽完成⼤量类同的计算.C语⾔提供了while语句、do...while语句和for语句实现循环结构.3.4.1while语句while语句是当型循环控制语句,⼀般形式为:while<表达式>语句;语句部分称为循环体,当需要执⾏多条语句时,应使⽤复合语句.while语句的流程图见图3-8,其特点是先判断,后执⾏,若条件不成⽴,有可能⼀次也不执⾏.[例3-11]求n!分析:n!=n*(n-1)*(n-2)*..2*1,0!=1.即S0=1,Sn=Sn-1*n.可以从S0开始,依次求出S1、S2、...Sn.统⼀令S等于阶乘值,S的初值为0!=1;变量i为计数器,i从1变到n,每⼀步令S=S*i,则最终S中的值就是n!.流程图见图3-9,程序如下:考察图3-9中循环部分的流程图可以看出,在循环前各变量应有合适的值(s=1),另外,控制循环结束的变量(此处为i)必须在循环体中被改变,否则,循环将⽆限进⾏下去,成为死循环.本题中,将多项式的每⼀项⽤t表⽰,s代表符号,在每⼀次循环中,只要改变s、n的值,就可求出每⼀项t.⼀般情况下,while型循环最适合于这种情况:知道控制循环的条件为某个逻辑表达式的值,⽽且该表达式的值会在循环中被改变,如同例3-12的情况⼀样.3.4.2do...while语句在C语句中,直到型循环的语句是do...while,它的⼀般形式为:do语句while<表达式>其中语句通常为复合语句,称为循环体.do...while语句的流程图见图3-10,其基本特点是:先执⾏后判断,因此,循环体⾄少被执⾏⼀次.但需要注意的是,do...while与标准的直到型循环有⼀个极为重要的区别,直到型循环是当条件为真时结束循环,⽽do...while 语句恰恰相反,当条件为真时循环,⼀旦条件为假,⽴即结束循环,请注意do...while语句的这⼀特点.例[3-13]计算sin(x)=x-x3/3!+x5/5!-x7/7!+...直到最后⼀项的绝对值⼩于1e-7时为⽌.分析:这道题使⽤递推⽅法来做.让多项式的每⼀项与⼀个变量n对应,n的值依次为1,3,5,7,...,从多项式的前⼀项算后⼀项,只需将前⼀项乘⼀个因⼦:(-x2)/((n-1)*n)⽤s表⽰多项式的值,⽤t表⽰每⼀项的值,程序如下:#include# includem a i n ( ){double s,t,x ;int n ;printf("please input x :");scanf("%lf",&x);t=x;n=1;s=x;do{n=n+2;t=t*(-x*x)/((float)(n)-1)/(float)(n);s=s+t;}while(fabs(t)>=1e-7);printf("sin(%f)=%lf,"x,s);}运⾏结果如下:RUN?pleaseinputx:1.5753?sin(1.575300)=0.999990RUN?pleaseinputx:-0.65?sin(-0.650000)=-0.6051863.4.3for语句for语句是循环控制结构中使⽤最⼴泛的⼀种循环控制语句,特别适合已知循环次数的情况.它的⼀般形式为:for(<表达式1>;<表达式2>;<表达式3>)语句for语句很好地体现了正确表达循环结构应注意的三个问题:1)控制变量的初始化.2)循环的条件.3)循环控制变量的更新.表达式1:⼀般为赋值表达式,给控制变量赋初值;表达式2:关系表达式或逻辑表达式,循环控制条件;表达式3:⼀般为赋值表达式,给控制变量增量或减量.语句:循环体,当有多条语句时,必须使⽤复合语句.for循环的流程图如图3-11,其执⾏过程如下:⾸先计算表达式1,然后计算表达式2,若表达式2为真,则执⾏循环体;否则,退出for 循环,执⾏for循环后的语句.如果执⾏了循环体,则循环体每执⾏⼀次,都计算表达式3,然后重新计算表达式2,依此循环,直⾄表达式2的值为假,退出循环.[例3-14]计算⾃然数1到n的平⽅和.# include# includemain ( ){int i;float s;printf("please input n :");scanf("%d",&n);s=0.0;for(i=1;i<=n;i++)s=s+(float)(i)*(float)(i);printf("1*1+2*2+...+%d*%d=%f\,nn",n,s);}运⾏结果如下:RUNplease input n:51*1+2*2+...+5*5=55.000000for语句的⼏种格式for语句的三个表达式都是可以省略的,但分号“;”绝对不能省略.a.for(;;)语句;这是⼀个死循环,⼀般⽤条件表达式加break语句在循环体内适当位置,⼀旦条件满⾜时,⽤break语句跳出for循环.例如,在编制菜单控制程序时,可以如下:for(;;){printf("please input choice(Q=Exit):");显/*⽰菜单语句块:*/scanf("%c",&ch);if(ch=='Q')or(ch=='q')break;语/*句段*/}b.for(;表达式2;表达式3)使⽤条件是:循环控制变量的初值不是已知常量,⽽是在前⾯通过计算得到,例如:i=m-n;for(;ic.for(表达式1;表达式2;)语句⼀般当循环控制变量⾮规则变化,⽽且循环体中有更新控制变量的语句时使⽤.例如:for(i=1;i<=100;){i=i*2+1;}d.for(i=1,j=n;i在for语句中,表达式1、表达式3都可以有⼀项或多项,如本例中,表达式1同时为i和j 赋初值,表达式3同时改变i和j的值.当有不⽌⼀项时,各项之间⽤逗号“,”分隔.另外,C语⾔还允许在循环体内改变循环变量的值,这在某些程序的设计中是很有⽤的.到此,我们已经学习了C语⾔中三种循环控制语句while、do...while和for语句,下⾯再讨论两个问题:三种语句的选⽤同⼀个问题,往往既可以⽤while语句解决,也可以⽤do...while或者for语句来解决,但在实际应⽤中,应根据具体情况来选⽤不同的循环语句,选⽤的⼀般原则是:1)如果循环次数在执⾏循环体之前就已确定,⼀般⽤for语句;如果循环次数是由循环体的执⾏情况确定的,⼀般⽤while语句或者do...while语句.2)当循环体⾄少执⾏⼀次时,⽤do...while语句,反之,如果循环体可能⼀次也不执⾏,选⽤while语句.循环的嵌套⼀个循环的循环体中有另⼀个循环叫循环嵌套.这种嵌套过程可以有很多重.⼀个循环外⾯仅包围⼀层循环叫⼆重循环;⼀个循环外⾯包围两层循环叫三重循环;⼀个循环外⾯包围多层循环叫多重循环.三种循环语句for、while、do...while可以互相嵌套⾃由组合.但要注意的是,各循环必须完整,相互之间绝不允许交叉.如下⾯这种形式是不允许的:do{for(;;){......}while();}[例3-15]打印8⾏7列的星形矩阵.流程图见图3-12,程序如下:#includemain(){inti,j;for(i=0;i<8,i++)/*控制⾏*/{for(j=0;j<7>;j++)/*控制列*/printf("*");printf("\n");/*换⾏*/}}打印结果如下:RUN********************************************************将程序中for(j=0;j<7;j++)改为for(j=0;j打印三⾓形.3.4.4break与continue语句有时,我们需要在循环体中提前跳出循环,或者在满⾜某种条件下,不执⾏循环中剩下的语句⽽⽴即从头开始新的⼀轮循环,这时就要⽤到break和continue语句.1.break语句在前⾯学习switch语句时,我们已经接触到break语句,在case⼦句执⾏完后,通过break 语句使控制⽴即跳出switch结构.在循环语句中,break语句的作⽤是在循环体中测试到应⽴即结束循环时,使控制⽴即跳出循环结构,转⽽执⾏循环语句后的语句.[例3-16]打印半径为1到10的圆的⾯积,若⾯积超过100,则不予打印.#includemain(){intr;float area;for(r=1;r<=10;r++){area=3.141593*r*r;if(area>100.0)break;printf("square=%f\n",area);}printf("nowr=%d\n",r);}运⾏程序:RUNsquare=3.141593square=12.566373square=28.274338square=50.265488square=78.539825nowr=6当break处于嵌套结构中时,它将只跳出最内层结构,⽽对外层结构⽆影响.2.continue语句continue语句只能⽤于循环结构中,⼀旦执⾏了continue语句,程序就跳过循环体中位于该语句后的所有语句,提前结束本次循环周期并开始新⼀轮循环.[例3-17]计算半径为1到15的圆的⾯积,仅打印出超过50的圆⾯积.#includemain(){int r;float area;for(r=1;r<=5;r++){area=3.141593*r*r;if(area<50.0)continue;printf("square=%f",area);}}结果为:RUNsquare=50.265488square=78.539825同break⼀样,continue语句也仅仅影响该语句本⾝所处的循环层,⽽对外层循环没有影响.3.4.5程序应⽤举例[例3-18]验证哥德巴赫猜想:任⼀充分⼤的偶数,可以⽤两个素数之和表⽰,例如:4=2+26=3+3......98=19+79哥德巴赫猜想是世界著名的数学难题,⾄今未能在理论上得到证明,⾃从计算机出现后,⼈们就开始⽤计算机去尝试解各种各样的数学难题,包括费马⼤定理、四⾊问题、哥德巴赫猜想等,虽然计算机⽆法从理论上严密地证明它们,⽽只能在很有限的范围内对其进⾏检验,但也不失其意义.费马⼤定理已于1994年得到证明,⽽哥德巴赫猜想这枚数学王冠上的宝⽯,⾄今⽆⼈能及.分析:我们先不考虑怎样判断⼀个数是否为素数,⽽从整体上对这个问题进⾏考虑,可以这样做:读⼊⼀个偶数n,将它分成p和q,使n=p+q.怎样分呢?可以令p从2开始,每次加1,⽽令q=n-p,如果p、q均为素数,则正为所求,否则令p=p+q再试.其基本算法如下:1)读⼊⼤于3的偶数n.2)P=13)do{4)p=p+1;q=n-p;5)p是素数吗?6)q是素数吗?7)}whilep、q有⼀个不是素数.8)输出n=p+q.为了判明p、q是否是素数,我们设置两个标志量flag p和flag q,初始值为0,若p是素数,令flag p=1,若q是素数,令flagq=1,于是第7步变成:7)}while(flag p*flag q==0);再来分析第5、第6步,怎样判断⼀个数是不是素数呢?素数就是除了1和它⾃⾝外,不能被任何数整除的整数,由定义可知:2、3、5、7、11、13、17、19等是素数;1、4、6、8、9、10、12、14等不是素数;要判断i是否是素数,最简单的办法是⽤2、3、4、??i-1这些数依次去除i,看能否除尽,若被其中之⼀除尽,则i不是素数,反之,i是素数.但其实,没必要⽤那么多的数去除,实际上,⽤反证法很容易证明,如果⼩于等于i的平⽅根的数都除不尽,则i必是素数.于是,上述算法中的第5步、第6步可以细化为:第5)步p是素数吗?flag p=1;for(j=2;j<=[sqrt(p)];j++)ifp除以j的余数=0{flag p=0;break;}第6)步q是素数吗?flag q=1;for(j=2;j<=[sqrt(q)];j++)ifq除以j的余数=0{flag q=0;break;}程序如下:#include#includemain(){intj,n,p,q,flag p,flag q;printf("please input n:");scanf("%d",&n);if(((n%2)!=0)||(n<=4))printf("inputdataerror!\n");else{p=1;do{p=p+1;q=n-p;flag p=1;for(j=2;j<=(int)(floor(sqrt((double)(p))));j++) {if((p%j)==0){flag p=0;break;}}flag q=1;for(j=2;j<=(int)(floor(sqrt((double)(q))));j++) { if((q%j)==0){flag q=0;break;}}}while(flag p*flag q==0);printf("%d=%d+%d\n,"n,p,q);}}程序运⾏结果如下:RUN?please input n:88=3+5RUNplease input n:98 98=19+79RUNplease input n:9 input data error!。

51单片机之C语言-4.5基本语句之循环语句

51单片机之C语言-4.5基本语句之循环语句

51单片机之C语言-4.5基本语句之循环语句
1.循环语句while 循环结构是程序中一种很重要的结构。

while 语句的一般形式为:
while(表达式)语句
其中表达式是循环条件,语句为循环体。

while 语句的语义是:计算表达式的值,当值为真(非零)时,执行循环体语句。

其执行过程可用下图表示。

图4-5-1 while 循环执行过程while 语句中的表达式一般是关系表达式或逻辑表达式,只要表达式的值为真(非0)即可继续循环。

2.循环语句do-while
do-while 语句的一般形式为:
do
语句
while(表达式)
其执行过程可用如下流程图表示,
这个循环与while 循环的不同在于:它先执行循环中的语句,然后再判断表达
式是否为真,如果为真则继续循环;如果为假,则终止循环。

因此,do-while
循环至少要执行一次循环语句。

3.循环语句for
for 循环的一般形式为:
for (表达式1;表达式2;表达式3)
{
语句;。

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

2020/8/14
4
100
∑n 例: 用while循环求
n=1
循环初值 循环变量增值
#include <stdio.h> main() { int i,sum=0;
i=1; while(i<=100) { sum=sum+i;
i++; } printf("%d",sum); }
循环条件
循环终值 循环体语句
2020/8/14
9
例 while和do~while比较
#include <stdio.h> main() { int i,sum=0;
scanf("%d",&i); do { sum+=i;
i++; }while(i<=10); printf("%d",sum); }
# include <stdio.h> main() { int i,sum=0;
C语言循环语句
2、goto语句 含义 : 无条件转移
goto语句一般格式:
2020/8/14
goto 语句标号; ….….. 标号:语句;
说明: 不能用整数作标号 只能出现在goto所在函数内,且唯一 只能加在可执行语句前面 限制使用goto语句
2
5.2 while语句
❖一般形式: while(表达式) 循环体语句;
2020/8/14
5
例: 显示1~10的平方
#include <stdio.h> main() { int i=1;
while(i<=10) { printf("%d*%d=%d\n",i,i,i*i);
i++; } }
运行结果: 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
假(0) 表达式
真(非0) 循环体
循环体语句
真(非0) 表达式 假(0)
2020/8/14
8
100
∑n 例: 用do~while循环求
n=1
#include <stdio.h> main() { int i,sum=0;
i=1; do { sum+=i;
i++; }while(i<=100); printf("%d",sum); }
if(15*x+9*y+z==300)
if(15*x+9*y+z==300)
printf(“%,d%d,%d\n”,x,y,z);
}
2020/8/14
16
}
#include <stdio.h>
{ inti,sfuomr语=0句; 可以转换成while结构
for(i=1;i<=100;i++)
表达式1;
sum+=i;
while(表达式2)
printf("%d",sum);
{
}
循环体语句;
表达式3;
2020/8/14
}
12
5.5 循环嵌套
循环的嵌套
❖三种循环可互相嵌套,层数不限
❖外层循环可包含两个以上内循环,但不能相互交叉
2020/8/14
15
程序实现
#include <stdio.h>
1、定ma义in3()个变量。用双for循环实现: i{nt x,y,z; foinrt(xx,=y,0z;;x<=100;x++)
forf(ox=r(0y;=x<0=;y10<0=;1x+0+0);y++)
forz(y==100;y0<-x=1-y0;0;y++) 2、利用{z=if1语00句-x-判y;断x,y,z是否5满*x+足3为*y条什+z么件/3不=:=是100呢
x+y+z=100 ……① 5x+3y+z/3=100……②
三个未知数, 两个方程
问题解决之道:穷举法 穷举解决之道:循环Biblioteka 2020/8/1414
x+y+z=100 ……① 5x+3y+z/3=100……②
算法如下: 假设x、y已知,由方程①可以得出z=100-x-y 由条件可知x和y的值有限制,只可能在0~100之间。需要用 二重循环实现。每个x和y的组合都对应一个z的值,如果x, y和z的值满足方程②,即为所求结果
2020/8/14
6
5.3 Do-while语句
❖一般形式: do 循环体语句;
while(表达式);
❖执行流程:
循环体语句
真(非0)
表达式 假(0)
2020/8/14
7
❖特点:先执行循环体,后判断表达式 ❖说明:
至少执行一次循环体 do~while可转化成while结构
赋初值
While循环
Do-While循环
scanf("%d",&i); while(i<=10) { sum+=i;
i++; } printf("%d",sum); }
2020/8/14
10
5.4 for循环
❖一般形式:
for([表达式1] ;[ 表达式2] 循环体语句;
;[
表达式3])
❖执行流程:
表达式1
假(0) 表达式2
真(非0)
循环体语句
❖流程图:
假(0) 表达式
真(非0) 循环体语句
2020/8/14
3
❖特点:先判断表达式,后执行循环体 ❖几点说明:
循环体有可能一次也不执行 循环体可为任意类型语句 下列情况,退出while循环
条件表达式不成立(为零) 循环体内遇break,return,goto 无限循环: while(1)
循环体语句;
表达式3
2020/8/14
11
❖for语句最简单应用形式:
for(循环变量赋初值;循环条件;循环变量增值)
{
循环体语句;
}
例❖用说fo明r循:环求∑n
for语句中表达式1, 表达式2 ,表达式3 类型任 #inclu意de,<s都td可io.省h>略,但分号;不可省
main()无限循环: for(;;)
❖嵌套循环的执行流程
❖嵌套循环的跳转
(1) while() 禁止(:2) do
(3) while()
{
…… while() { ……
12..从跳{ 外 入…d{层同o……跳层…入的内另层一循{ 环…d{o………
}
3.向上}跳wh转ile( );
}while( );
(4) for( ; ;) { …… do { …… }while();
…...
…...
…….
……
}
}while( );
}
while()
{ ……
}
…...
2020/8/14
}
13
例: 我国古代数学家张丘建在《算经》中出了一道题“鸡翁一, 值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡, 问鸡翁、鸡母、鸡雏各几何?”
解题思路:
利用以前学过的数学知识列方程。 假设鸡翁数为x,鸡母数为y,鸡雏数为z。列方程为:
相关文档
最新文档