本文共 2760 字,大约阅读时间需要 9 分钟。
循环结构是程序中一种很重要的结构,其特点是,在给定条件成立时,9反复执行某程序段,直到条件不成立为止。给定的条件称为循环条件,反复执行的程序段称为循环体。
C语言提供了很多循环语句,可以组成各种不同形式的循环结构。
goto语句是一种无条件转移的语句,与BASIC种的goto语句相似。goto语句的使用格式为:
goto 语句标号;其中标号是一个有效的标识,这个标识链加上一个冒号“:”一起出现在函数内某处,行 goto 语句后,程序将跳转到该标号处并行其后的语句。
另外标号必与 goto 语句同处于一个函数中,但可以不在一个循玚层中。
通常 goto 语句与 if 条件语句连用,当满是某一条件时,程序跳到标号处运行。
但是注意: goto 语句通常不用主要因为它将程序层次不清,且不易读,但在多层嵌套退出时,用 goto 语句比较台理。
例题:用goto语句和if语句构成1-100的累加void main() { int i, sum = 0; i = 1; loop:if (i<=100) { sum += i; i++; goto loop; } printf("%d\n", sum);}
while(表达式)语句其中表达式时循环条件,语句为循环体
计算表达式的值,当值为真(非0)时,执行循环体语句。如果表达式的语句一开始就是0,那么就不执行语句
int i, sum = 0; i = 1; while (i <= 100) { sum += i; i++; } printf("%d\n", sum);* 注意事项: 1. while语句中的表达式一般是关系表达式或逻辑表达式,只要表达式的值为真(非0)即可继续循环int a = 0, n; printf("输入一个数"); scanf("%d",&n); while (n--) { printf("%d",a++*2);//此处相当于先执行a*2再a++ }
do 语句 while (表达式);
先执行循环中的语句,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环,因为do-while循环至少要执行一次循环语句
void main() { int i, sum = 0; i = 1; do{ sum += i; i++; } while (i <= 100); printf("%d\n", sum);}
for(表达式1;表达式2;表达式3) 语句
执行过程
void main() { int sum = 0; for (int i = 0; i < 100; i++) { sum += i; } printf("%d",sum);}
注意事项:
1. for循环中,表达式1,2,3都是选择项,即可以缺省,但是”;”不能缺省 2. 省略表达式1,表示不对循环控制变量赋初值(可在for语句上方进行赋值) 3. 省略表达式2,不做其他处理时,便为死循环 4. 省略表达式3,则不对循环控制变量进行操作。(可以在内部进行递增) 5. 三个表达式省略便为死循环 6. 表达式1,3可以用逗号赋多个初值。
循环嵌套
for中加forvoid main() { for (int i = 1; i < 6; i++) { for (int j = 1; j <= i; j++) { printf("*"); } printf("\n"); }}
四种循环可以用来处理同一问题,一般情况下可以相互代替,一般不提倡使用goto型循环
用while循环和do-while循环中,只在while后面的括号内指定循环条件,因为为了使循环能正常节输,应在循环体中包含使循环趋于结束的语句(如i++,或i=i+1等)
for循环可以在表达式3中包含使循环趋于结束的操作,甚至可以将循环体中的操作全部放在表达式3中。因此for语句的功能更强while和do-while循环时,初始化操作必须在使用while之前,但是for循环可以在括号里面进行设置初值
goto语句不能使用break,continue语句。其他均可以。
void main() { int n; for (int i = 100; i < 200; i++) { if (n % 3 == 0) continue; printf("%d\n",n); }}//如果被三整除,就跳出循环,不打印printf语句
void main() { int s=1; double n=1.0, t =1, pi=0; while (fabs(t)>1e-6)//十的-6次方,3.14159 { pi = pi + t; n += 2; //循环一次就变一次符号 s = -s; t = s / n; } pi *= 4; printf("pi=%10.6f\n", pi);}
转载地址:http://itxmj.baihongyu.com/