循环类型:
while 循环
for 循环
do…while 循环
嵌套循环
循环控制语句
break语句 终止循环或 switch 语句,程序流将继续执行紧接着循环或 switch 的下一条语句。
#include <stdio.h>
int main ()
{
/* 局部变量定义 */
int a = 10;
/* while 循环执行 */
while( a < 20 )
{
printf("a 的值: %d\n", a);
a++;
if( a > 15)
{
/* 使用 break 语句终止循环 */
break;
}
}
return 0;
}
结果:
a 的值: 10
a 的值: 11
a 的值: 12
a 的值: 13
a 的值: 14
a 的值: 15
continue语句 告诉一个循环体立刻停止本次循环迭代,重新开始下次循环迭代。
#include <stdio.h>
int main ()
{
/* 局部变量定义 */
int a = 10;
/* do 循环执行 */
do
{
if( a == 15)
{
/* 跳过迭代 */
a = a + 1;
continue;
}
printf("a 的值: %d\n", a);
a++;
}while( a < 20 );
return 0;
}
结果:
a 的值: 10
a 的值: 11
a 的值: 12
a 的值: 13
a 的值: 14
a 的值: 16
a 的值: 17
a 的值: 18
a 的值: 19
goto语句 将控制转移到被标记的语句。但是不建议在程序中使用 goto 语句。
补充:
1.使用 while, for 分别输出 1~100 以内的所有的奇数和偶数的和:
使用 while:
#include <stdio.h>
int main(){
int sum=0;
int num=1;
int sum2=0;
int num2=2;
while(num<100){
sum=sum+num;
num=num+2;
}
printf("奇数和为:%d\n",sum);
while(num2<=100){
sum2=sum2+num2;
num2=num2+2;
}
printf("偶数和为:%d\n",sum2);
}
使用 for:
#include <stdio.h>
int main(){
int sum=0;
int sum2=0;
int num,num2;
for(num=1;num<100;num=num+2){
sum=sum+num;
}
printf("奇数和%d\n",sum);
for(num2=2;num2<=100;num2=num2+2){
sum2=sum2+num2;
}
printf("偶数和%d\n",sum2);
}
2.用 do while 求算术平方根:
#include <stdio.h>
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;
}
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;
}
3.求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);
}
}
}
第一个循环里面。i遍历从2到100以内的所有数字,第二个循环是在2到sqrt(n)之间看看是不是可以整除i。可以整除则不是素数,相反不可以整除,则是素数。
int fun(int n){
for(i=2;i<=sqrt(p);i++){
if(x%i==0){
return 0; //不为素数
}
else{
return 1; //为素数
}
}
}
这个是求素数的关键代码。希望初学者要牢记于心,烂熟于心。
4.用 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;
}
一定要注意 break 语句与 continue 语句的区别,前者是结束整个循环过程,后者这是结束本次循环。