南非世界杯时间

C语言break和continue跳出循环(非常详细,新手必看)

在 C 语言中,利用循环结构(for 和 while 循环)编程时,我们经常需要提前结束循环(在循环条件成立的情况下强制结束循环),或者跳过某些迭代,此时就可以使用 break 或者 continue 关键字。

一次循环称为一次迭代,例如 for(int i=1; i<=10; i++) 会循环 10 次,所以有 10 次迭代。

C语言break关键字

C语言 break 关键字可以用于 switch caseswitch caseswitch case 分支,或者 while 循环,或者 for 循环,它的作用只有一个,就是“跳出”整个语句,结束整个语句的执行。本文只讲解 break 关键字在 while/for 循环中的用法,如果你想了解它在 switch case 语句中的用法,请转到:C语言 switch case 用法详解 在 while/for 循环中,break 关键字用来跳出循环。当程序执行到 break 语句时,会立即终止整个循环,并继续执行循环之后的代码。 break 关键字通常和 if else 语句一起使用,即满足条件时便跳出循环。 使用 while 循环计算从 1 加到 100 的值:

#include

int main(){

int i=1, sum=0;

while(1){ //循环条件为死循环

sum+=i;

i++;

if(i>100) break; //跳出循环

}

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

return 0;

}

运行结果:

5050

while 循环条件为 1,是一个死循环。当执行到第 100 次循环的时候,计算完i++;后,i 的值为 101,此时 if 语句的条件 i> 100 成立,执行break;语句,结束循环。 需要注意的是,一个 break 只能跳出一个 while/for 循环。这意味着在多层循环中,一个 break 语句只向外跳出一层;如果需要跳出多层循环,那么每层循环都需要一个 break 语句。 例如,输出一个 4*4 的整数矩阵:

#include

int main(){

int i=1, j;

while(1){ // 外层循环

j=1;

while(1){ // 内层循环

printf("%-4d", i*j);

j++;

if(j>4) break; //跳出内层循环

}

printf("\n");

i++;

if(i>4) break; // 跳出外层循环

}

return 0;

}

运行结果:

1 2 3 4

2 4 6 8

3 6 9 12

4 8 12 16

当 j>4 成立时,执行break;,跳出内层循环;外层循环依然执行,直到 i>4 成立,跳出外层循环。内层循环共执行了 4 次,外层循环共执行了 1 次。

C语言continue关键字

C语言 continue 关键字只能用在 while 和 for 循环中,它的作用是跳过当前迭代,进入下一次迭代。 程序一旦遇到 continue,就会忽略循环体中的剩余语句,直接进入下一次循环。这意味着,位于 continue 后面代码,在当前迭代(当前循环)中不会被执行,但循环并不会因此而终止,而是继续进行下一次迭代。 continue 关键字常与 if else 语句一起使用,即满足条件是便跳过当前迭代。 例如,判断用户输入的数字,如果不是 4 也不是 5,那么就原样输出:

#include

int main(){

char c = 0;

while(c!='\n'){ //回车键结束循环

c=getchar();

if(c=='4' || c=='5'){ //按下的是数字键4或5

continue; //跳过当次循环,进入下次循环

}

putchar(c);

}

return 0;

}

运行结果:

0123456789↙ 01236789

程序遇到 while 时,变量 c 的值为'\0',循环条件c!='\n'成立,开始第一次循环。getchar() 使程序暂停执行,等待用户输入,直到用户按下回车键才开始读取字符。 本例我们输入的是 0123456789,当读取到 4 或 5 时,if 的条件c=='4'||c=='5'成立,就执行 continue 语句,结束当前循环,直接进入下一次循环,也就是说putchar(c);不会被执行到。而读取到其他数字时,if 的条件不成立,continue 语句不会被执行到,putchar(c);就会输出读取到的字符。

break 和 continue 的区别

C语言 break 和 continue 都能改变循环的执行流程,但它们之间存在明显的区别:

break 会完全终止循环,将执行流程转到 while/for 后面的代码;这意味着,整个循环中的任何语句都不再有执行机会。continue 只是结束本次迭代(跳过当前迭代的剩余代码),直接进入下一次迭代;如果循环条件成立,整个循环还会继续执行。

最后需要注意的是,一个 break/continue 只能作用于一个 while/for 循环,在内层循环中使用 break/continue 并不会影响外层循环。

Copyright © 2088 中国举办世界杯_世界杯足球场地尺寸 - lchjdj.com All Rights Reserved.
友情链接