§6.2无条件转向语句 main() I int k, sum=0; goto k=1 loop if(k<=100) 说明:goto可以从 I sum=sum+k, k++ 较深的多重循环中 goto loop; 1 转移到外层,或从 printf(%d", sum); 函数内,转移到函 数外,不能从外到 内 共44贝弟6贝
共 42页 第 6 页 main( ) { int k, sum=0; k=1; loop: if(k<=100) { sum=sum+k; k++; goto loop; } printf(“%d”,sum); } 说明:goto可以从 较深的多重循环中 转移到外层,或从 函数内,转移到函 数外,不能从外到 内 § 6.2 无条件转向语句
§62用 while设计循环结构 while循环 while(条件 1.格式: while(表达式)循环体 语句组} 2.功能:先判断表达式的值,若为非零,重复执行循环 体语句,再判断.直到表达式的值为零,退出循环体。 即:测试一执行一测试一执行 main() int s, n, 100 s=0;n=1 while(n<=100) [ s=Stn, n++ n=1 printf(%dIn”,s);}
共 42页 第 7 页 while循环 1. 格式:while(表达式) 循环体 2. 功能:先判断表达式的值,若为非零,重复执行循环 体语句,再判断…直到表达式的值为零,退出循环体。 即:测试---执行--测试--执行-- §6.2 用while设计循环结构 while (条件) {语句组} = = x n s n 1 main ( ) { int s,n ; s=0 ; n=1; while(n<=100) { s=s+n ; n++; } printf(“%d\n”, s); } 100
§62用 whille设计循环结构(续) 3.说明: 例题:求1+2+3.+n<=10000 1)当循环体中语句多于一{的最大的a。 条时,用{},否则,循环只 main 对一个;起作用 i int a, n; a=n=0; (2)循环体内部必须有实现 while(a<=10000) 对循环变量增值的语句,否 {++n;a+=n 则,易出现“死循环” (3)条件表达式要有括号 printf(“1+2+3.….%d=%d 后面不加分号 Ⅶn”,n-1,a-n (4)注意条件的边界值 共42页第8页
共 42页 第 8 页 3.说明: (1)当循环体中语句多于一 条时,用{ },否则,循环只 对一个;起作用. (2)循环体内部必须有实现 对循环变量增值的语句,否 则,易出现“死循环”. (3) 条件表达式要有括号, 后面不加分号. (4) 注意条件的边界值. 例题:求 1+2+3…+n<=10000 的最大的n。 main( ) { int a,n; a=n=0; while(a<=10000) { ++n; a+=n; } printf(“1+2+3…..+%d=%d \n”,n-1,a-n); } §6.2 用while设计循环结构(续)
§62用 while设计循环结构(续) number初值为0条件为 numbers<=1 main() 1 number为0,满足条件 i int number=0; number为0,然后自增为1 while(number<-1) 输出 number1 i number++ 2 number为1,满足条件 printf(%odin”, number); number为1然后自增为2 输出 number2 结果: 3 number为2不满足条件 共42页第9页
共 42页 第 9 页 main( ) { int number=0; while(number<=1) { number++; printf(“%d\n”,number); } } 结果: 1 2 number初值为 0, 条件为number<=1 1.number为0,满足条件 number为0,然后自增为1 输出number 1 2.number为1,满足条件 number为1,然后自增为2 输出number 2 3.number为2,不满足条件 §6.2 用while设计循环结构(续)
§62用 while设计循环结构(续) main(i int number=0; 循环进行了多少次? while(number++<=1) 输出的值? printf(%odn",number)-@ printf("**odn", number); 1+# 条件表达条件表达执行哪个输出的结果:*1 式执行次式中变量 printf语 number 22 数 的值 句@@ 的值 3 0 3 2 # 23 共42页第10页
共 42页 第 10 页 main( ) { int number=0; while(number++<=1) printf(“*%d\n”,number); printf(“**%d\n”,number); } 循环进行了多少次? 输出的值? 结果 : *1 *2 **3 条件表达 式执行次 数 1 2 3 条件表达 式中变量 的值 0 1 2 执行哪个 printf语 句 @ @ # @ # 输出的 number 的值 1 2 3 §6.2 用while设计循环结构(续)