一、循环类型
C 语言提供了以下几种循环类型。
循环类型 | 描述 |
---|---|
while 循环 | 当给定条件为真时,重复语句或语句组。它会在执行循环主体之前测试条件。 |
for 循环 | 多次执行一个语句序列,简化管理循环变量的代码。 |
do…while 循环 | 除了它是在循环主体结尾测试条件外,其他与 while 语句类似。 |
嵌套循环 | 您可以在 while、for 或 do…while 循环内使用一个或多个循环。 |
do{}while(); 和 while(){} 的区别在于 前者在循环的尾部检查它的条件,会确保至少执行一次循环。
二、循环控制语句
循环控制语句改变你代码的执行顺序。通过它你可以实现代码的跳转。
控制语句 | 描述 |
---|---|
break 语句 | 终止循环或 switch 语句,程序流将继续执行紧接着循环或 switch 的下一条语句。 |
continue 语句 | 告诉一个循环体立刻停止本次循环迭代,重新开始下次循环迭代。 |
goto 语句 | 将控制转移到被标记的语句。但是不建议在程序中使用 goto 语句。 |
注意:在任何编程语言中,都不建议使用 goto 语句。因为它使得程序的控制流难以跟踪,使程序难以理解和难以修改。任何使用 goto 语句的程序可以改写成不需要使用 goto 语句的写法。
三、无限循环
1、for( , , ){}
2、while(1){}
四、应用
1、用 break 语句求100以内的素数。
#include<stdio.h>
#include<math.h>
int main(){
int i,j;
printf("100以内的素数有:\n");
for(i=2;i<100;i++){
for(j=2;j<sqrt(i);j++){
if(i%j==0){
break;
}
}
if(j>sqrt(i)){
printf("%d,\t",i);
}
}
}
2、用 continue 语句求输出 100~200 之间的不能被3整除的数。
#include<stdio.h>
int main()
{
int n;
for(n=100;n<=200;n++)
{
if(n%3==0)
continue;
printf("%d",n);
}
printf("\n");
return 0;
}
3、用 do while 求算术平方根:
#include <stdio.h>
int main(){
double x, y;
printf("请输入一个数字:");
scanf("%lf", &x);
if(x<0){
printf("输入错误。");
} else {
y=DoSqrt(x);
printf("%g 的平方根为: %g.\n", x, y);
}
int z=1;
do{
main();
z++;
}while(z>10);
return 0;
}
double DoSqrt(double z){
double a=1;
double b=0;
double c=0;
do{
if(b*b<z){
b+=a;
}
else{
c=b;
b-=a;
a/=10;
}
}while(a>0.000001);
return (b+c)/2;
}