【C语言】改变循环结构的跳转语句间的区别(break,continue,goto语句)

一. break 语句和continue 语句

break 语句作用

break 语句用在循环语句switch语句

  • 用在循环语句中时:可使程序终止循环而转去执行循环语句的后继语句,一个break语句只能跳出一个循环(不是一次循环,是一层循环);通常break语句总是与if语句一起配合使用,即满足条件时便跳出本层循环
  • 用在switch语句中时:见下

continue 语句作用

continue 语句只能用在循环语句

  • 跳过循环体中continue后面的语句
  • 常与if语句一起使用,即满足条件时跳出本次循环

具体解释

1. 在 for 循环中

for语句执行流程

for(表达式1;表达式2;表达式3)
{
循环体语句;
}

在执行循环体语句时:

  • 遇到break:跳出for循环,执行该for循环的下一条语句
  • 遇到continue:跳到表达式3

2. 在 while 循环中

while语句执行流程
在执行循环体语句时:

  • 遇到break:跳出while循环,执行该while循环的下一条语句
  • 遇到continue:跳到表达式

3. 在 do…while 循环中

do-while语句执行流程
在执行循环体语句时:

  • 遇到break:跳出do-while循环,执行该while循环的下一条语句
  • 遇到continue:跳到表达式

4. 在 swtich 语句中 break 语句的作用

在执行switch语句时:

  • 遇到break:跳出switch语句,执行该switch语句的下一条语句

二. break 语句和continue 语句区别对比

以for循环为例,先看代码
break语句:

扫描二维码关注公众号,回复: 17066895 查看本文章
#include<stdio.h>
int main()
{
    
    
	int i, sum = 0;
	for (i = 1; i < 4; i++)
	{
    
    
		if (i < 2)
		{
    
    
			sum = sum + 1;
			printf("%d\n", sum);
		}
		if (i ==2)
		break;
		if (i == 3)
			printf("3");
	}
	return 0;
}

结果为:

1

continue语句:

#include<stdio.h>
int main()
{
    
    
	int i, sum = 0;
	for (i = 1; i < 4; i++)
	{
    
    
		if (i < 2)
		{
    
    
			sum = sum + 1;
			printf("%d\n", sum);
		}
		if (i ==2)
		continue;
		if (i == 3)
			printf("3");
	}
	return 0;
}

结果为:

1
3

监控调试:

  • break :
    break
    从上图中可以看到当i=2时,执行break语句,然后直接跳出了循环,开始执行return 0;语句,代码运行结束。这里的3并没有被打印。

  • continue:
    continue
    从上图中可以看到当i=2时,执行continue语句,然后跳到了for循环的表达式3,即i++(可以看到此时执行完for循环后i由2变成了3),然后继续正常执行后面的代码。这里的3打印了。

三. goto 语句

goto 语句标号;

  • 语句标号是一个有效的标识符,使用时在语句标号的后面跟一个冒号“:”出现在函数中某语句的前面。程序执行到goto语句时,会控制跳转到该语句标号处,达到控制循环的目的。
  • 例如:
#include<stdio.h>
int main()
{
    
    
	int i=1;
	int sum=0;
	loop:if(i<=100)//loop 为跳转语句的语句标号
		{
    
    
		    sum=sum+i;
			i++;
			goto loop;//跳转到语句标号loop处继续执行
		}
		printf("sum=%d\n",sum);
	    return 0;
}

猜你喜欢

转载自blog.csdn.net/m0_74102736/article/details/129729199