C语言中break与continue的用法和区别详解

 更新时间:2021年10月08日 15:51:11   作者:木唐枝  
当我们使用while或for循环时,如果想提前结束循环(在不满足结束条件的情况下结束循环),可以使用break或continue关键字,这篇文章主要给大家介绍了关于C语言中break与continue的用法和区别的相关资料,需要的朋友可以参考下

前言

本文将通过简单的实例来详细分析在C语言中break语句和continue语句的用法和区别,欢迎大家批评指正。(部分内容稍有重复,大家可自行选择跳转目录)

一、循环体中两者的作用

1.while循环

我们先看一个循环示例:此程序在屏幕上打印出数字1—10

int main()
{
	int i = 1;
	while (i <= 10)
	{
		printf("%d ", i);
		i++;
	}
	return 0;
}

运行结果:

(1)break语句 我们在刚才的代码添加两行代码并使用break语句,使其变成以下程序:

int main()
{
	int i = 1;
	while (i <= 10)
	{
		if (i == 5)
			break;
		printf("%d ", i);
		i++;
	}
	return 0;
}

此程序运行的结果如下图:


对此程序的运行结果进行分析:

总结: while 循环中的break是用于永久终止循环

(2)continue语句

还是刚才的代码,我们将其中的break 语句替换为continue语句

int main()
{
	int i = 1;
	while (i <= 10)
	{
		if (i == 5)
			//break;
			continue;
		printf("%d ", i);
		i++;
	}
	return 0;
}

运行该程序,得到结果:


我们可以看出,该程序并未执行结束,以下是对该程序的分析:


总结:continue 语句在while 循环中的作用是终止本次循环,即continue后面的代码不会执行,程序会跳转至while语句的判断部分,由于此时 i 等于5并且永远满足判断条件小于等于10,因此该循环将进入死循环,一直进行下去。

该示列对continue语句的用法不太直观,因此我们进行修改,将上述代码中的i++ 语句放置while循环里的最前面,并对i 的初值以及循环条件做以修改,以保证改进后的代码依旧可在屏幕上打印数字1—10

以下是改进后代码:

int main()
{
	int i = 0;
	while (i < 10)
	{
		i++;
		if (i == 5)
			//break;
			continue;
		printf("%d ", i);
		
	}
	return 0;
}

以下是运行结果:


然后我们在代码中加入continue 语句:

int main()
{
	int i = 0;
	while (i <10)
	{
		i++;
		if (i == 5)
			continue;
		printf("%d ", i);
		
	}
	return 0;
}

以下是运行结果:

2.for循环

还是刚才的示例,在屏幕上打印数字1—10,我们用for循环实现

int main()
{

	int i = 0;
	for (i = 1; i <= 10; i++)
	{
		printf("%d ", i);
	}

	return 0;
}

程序运行结果:

(1)break语句

代码:

int main()
{

	int i = 0;
	for (i = 1; i <= 10; i++)
	{
		if (i == 5)
		{
			break;
		}
		printf("%d ", i);
	}

	return 0;
}

结果分析:

总结: for循环中的break同while语句一样,是用于永久终止循环。

(2)continue语句

代码:

int main()
{
	int i = 0;
	for (i = 1; i <= 10; i++)
	{
		if (i == 5)
		{
			//break;
			continue;
		}
		printf("%d ", i);
	}
	return 0;
}

结果分析:

总结: for循环中的continue同while语句一样,是用于跳出本次循环,进行下一次循环。

3.do while循环

示例:输出1—10

int main()
{
	int i = 0;
	do
	{
		i++;
		printf("%d ", i);
	} while (i < 10);
	return 0;
}

结果:

(1)break语句

示例:

int main()
{
	int i = 0;
	do
	{
		i++;
		if (i == 5)
		{
			break;
			//continue;
		}
		printf("%d ", i);
	} while (i < 10);
	return 0;
}

结果:

(2)continue语句

示例:

int main()
{
	int i = 0;
	do
	{
		i++;
		if (i == 5)
		{
			//break;
			continue;
		}
		printf("%d ", i);
	} while (i < 10);
	return 0;
}

结果:

二、switch语句

continue语句只用于循环语句中,不能用于switch语句

而break语句可用于switch语句中。当其使用时可使程序跳出switch而执行switch以后的语句。如果没有break语句,则会从满足条件的地方(即与switch(表达式)括号中表达式匹配的case)开始执行,直到switch结构结束。
示例:输入数字1—7,其中1—5输出weekday,6、7输出weekend.

int main()
{

	int day=0;
	scanf("%d", &day);
	switch (day)
	{
	case 1:
	case 2:
	case 3:
	case 4:
	case 5:
		printf("weekday\n");
		break;
	case 6:
	case 7:
		printf("weekend\n");
		break;
	}
	return 0;
}

结果:

总结

本文对C语言中break和continue语句详细做了分析,由于三种循环(while、for、do while)在使用上有些差异,因此在实际应用中要具体判断,同时也感谢大家的观看,以上是本文的全部内容。

相关文章

  • C++ ASIO实现异步套接字管理详解

    C++ ASIO实现异步套接字管理详解

    Boost ASIO(Asynchronous I/O)是一个用于异步I/O操作的C++库,该框架提供了一种方便的方式来处理网络通信、多线程编程和异步操作,本文介绍了如何通过ASIO框架实现一个简单的异步网络套接字应用程序,需要的可以参考下
    2023-08-08
  • OpenCV视频流C++多线程处理方法详细分析

    OpenCV视频流C++多线程处理方法详细分析

    为OpenCV是搞计算机视觉必须要掌握的基础,这篇文章主要给大家介绍了关于OpenCV视频流多线程处理的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • C++算法之海量数据处理方法的总结分析

    C++算法之海量数据处理方法的总结分析

    本篇文章是对海量数据处理方法进行了详细的总结与分析,需要的朋友参考下
    2013-05-05
  • C++实现二维图形的打印

    C++实现二维图形的打印

    大家好,本篇文章主要讲的是C++实现二维图形的打印,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • 直观理解C语言中指向一位数组与二维数组的指针

    直观理解C语言中指向一位数组与二维数组的指针

    这篇文章主要介绍了直观理解C语言中指向一位数组与二维数组的指针,数组指针是C语言入门学习过程中的重点和难点,需要的朋友可以参考下
    2016-05-05
  • C++指针运算符(&和*)的实现

    C++指针运算符(&和*)的实现

    C++ 提供了两种指针运算符,一种是取地址运算符 &,一种是间接寻址运算符 *,本文就详细的介绍一下这两种运算符的使用,具有一定的参考价值,感兴趣的可以了解一下
    2023-08-08
  • 数据结构之红黑树详解

    数据结构之红黑树详解

    这篇文章主要介绍了数据结构之红黑树详解,红黑树是一种自平衡二叉查找树,它的统计性能要好于平衡二叉树(AVL树),因此,红黑树在很多地方都有应用,需要的朋友可以参考下
    2014-08-08
  • 深入C++中inline关键字的使用

    深入C++中inline关键字的使用

    本篇文章是对C++中inline关键字的使用进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C++ 实现汉诺塔的实例详解

    C++ 实现汉诺塔的实例详解

    这篇文章主要介绍了C++ 实现汉诺塔的实例详解的相关资料,这里主要说明C++中数据结构的递归的应用,需要的朋友可以参考下
    2017-08-08
  • 如何使用递归和非递归方式反转单向链表

    如何使用递归和非递归方式反转单向链表

    以下是对使用递归和非递归方式反转单向链表的示例进行了详细的分析介绍,需要的朋友可以过来参考下
    2013-07-07

最新评论