1 break语句

  • 当在switch中使用时,是用来防止其执行后续语句。
  • 当在循环语句中使用时,是用来结束循环。
  • 在嵌套循环结构中使用时会结束离它最近的一层循环。

用法及其示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>

int main()
{
int a,b,c;
b=5;
c=1;
//第一个示例
for(a=0;a<b;a++){
break;
c++;
}
//第二个示例
for(int c=0;c<b;c++){
for(int m=0;m<b;m++){
break;
c++;
}
c++
}
return 0;
}

在上述例子中,第一个例子,在执行break后佛如循环就结束了,所以第一个例子循环中c的值没有任何变化。在第二个例子中,内层循环由于首先执行了break,所以在外层循环的5次循环中,内层循环都没有开始执行c++就结束了。所以只有外层的c++执行了5次。故c的值增加了5并非25。


2 continue语句

  • continue 语句是在在循环中想要尽快==结束此次循环并执行下一次循环==时使用。

示例如下:

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>

int main ()
{
for(int i;i<=100;i++){
if(i&2==1){
continue;
}
printf("%d\n",i);
}
return 0;
}

在上述实例中,我们将奇数的值直接跳过打印,则当i为基数时执行continue,就跳过了后续执行内容,==跳到i++,不是直接开始下个循环,而是跳到i++==然后再接着去判断执行后续内容。


3 goto语句

  • goto 语句是无条件跳转语句,再成勋使用中尽量少使用。
  • 可以在循环内外直接跳转

示例:

1
2
3
4
5
6
7
8
9
#include <stdio.h>
int main(){
printf("12\n");
goto next;
printf("34\n");
next:
printf("56\n");
return 0;
}

在上述例子中在执行完goto后会自动跳到next执行next后面内容。所以指挥打印12和56。

再看一个例子:

1
2
3
4
5
6
7
8
#include <stdio.h>
int main () {
printf("ad\n");
goto next;
return 0;
next:
printf("cd\n");
}

在上述例子中,当运行到goto时直接跳过了return执行next后面文件。也就是阻止了程序提前结束。进而在打印了ad后继续打印cd。

接着看下个例子:

1
2
3
4
5
6
7
#include <stdio.h>
int main(){
next:
printf("qwer\n");
goto next;
return 0;
}

上述例子是一个非常典型的嘶循环例子会不断打印 qwer,时非常危险的一个编写方式。它会不断循环。所以在编写时一定要注意位置,并且最好少用goto语句,甚至是不用。


资料参考

b站的黑马程序员