break和continue语句都可以用在循环中

breakcontinue语句都可以用在循环中,用来跳出循环(结束循环);break语句还可以用在switch语句中,用来跳出switch语句;多层嵌套退出时,可以使用goto语句。

break和continue语句都可以用在循环中

1.break语句

break语句通常用在循环语句和开关语句中。当break用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句;如果没有break语句,则将成为一个死循环而无法退出

break语句用于do-whileforwhile循环语句中时,可使程序终止循环而执行循环后面的语句,通常break语句总是与if语句联在一起,即满足条件时便跳出循环。

4-7】计算半径r=1r=10时的圆面积,直到面积area大于100为止。


#include "stdio.h"

int main()

{

     float pi=3.14159f, area;

     int r;

     for(r=1;r<=10;r++)

     

        area=pi*r*r;

       if(area>100) 

       break;

       printf("r=%d,area=%f\n",r,area);

     }

     return 0;

}


程序运行结果:

 r=1,area=3.141590

 r=2,area=12.566360

 r=3,area=28.274311

 r=4,area=50.265442

 r=5,area=78.539749

本例中,程序的作用是计算r=1r=10时的圆面积,直到面积area大于100为止。从上面的for循环可以看到:当area>100时,执行break语句,提前结束循环,即不再继续执行其余的几次循环。

注意:

1break语句对if-else的条件语句不起作用;

2)在多层循环中,一个break语句只向外跳一层。

2.continue 语句

continue语句的作用是跳过循环体中剩余的语句而强行执行下一次循环。continue语句只用在forwhiledo-while等循环体中,常与if条件语句一起使用,用来加速循环。

对比一下breakcontinue

while的用法:

while(表达式1){

    ……

    if(表达式2) break;

    ……

}

continue的用法:

while(表达式1){

    ……

    if(表达式2) continue;

    ……

}

4-8】把100200之间的不能被3整除的数输出。


#include <stdio.h>

int main(){

    int n;

    for (n=100;n<=200;n++){

    if (n%3==0)

      continue;

    printf("%d  ",n);

   }

   return 0; 

}

程序运行结果:

100 101 103 104 106 107 109 110 112

115 116 118 119 121 122 124 125 127

130 131 133 134 136 137 139 140 142

145 146 148 149 151 152 154 155 157

160 161 163 164 166 167 169 170 172

175 176 178 179 181 182 184 185 187

190 191 193 194 196 197 199 200

本例中,当n能被3整除时,执行continue语句,结束本次循环(即跳过输出语句),只有n不能被3整除时才输出。

3. goto语句

goto语句是一种无条件转移语句,其使用格式为:

goto  语句标号;

标号是一个有效的标识符,这个标识符加上一个“:”一起出现在函数内某处,执行goto语句后,程序将跳转到该标号处并执行其后的语句。

标号必须与goto语句同处于一个函数中,但可以不在一个循环层中。通常goto语句与if条件语句连用,当满足某一条件时,程序跳到标号处运行。

4-9】用goto语句和if语句构成循环求 1+2+3+......+100的和。


#include <stdio.h>

int main()

{

    

   int i,sum=0;

   i=1;

   loop: if(i<=100)

   {

      sum=sum+i;

      i++;

      goto loop;

   }

   printf("%d\n",sum);

   return 0;

}


程序运行结果:

     5050

在本例中,当满足“i<=100”时执行花括弧内的循环体。“sum=sum+i;”等价于“sum+=i”用于实现累加的功能。在进入下一次循环之前使用“i++”来增加变量的值,促使循环一步步接近于结束。

goto语句通常不用,主要因为它将使程序层次不清,且不易读,但在多层嵌套退出时,用goto语句则比较合理。