C语言:分支与循环——break和continue语句

C语言在循环执行过程中,如果发送某些突发状况,需要提前终止循环,可以使用break和continue两个关键字来提前结束循环。

break适用于永久地终止循环,一旦执行break,会直接跳出循环,继续往后执行。

continue适用于跳过本次循环(不执行continue后的语句),转而进行下一次循环。

1.while循环中的break和continue

1.1 break

举例:

#include<stdio.h>
//while循环中的break和continue

int main()
{
	int i = 1;
	while (i <= 10)
	{
		if (i == 5)
		{
			break;
			//当i的值为5时,跳出循环,循环终止。
		}
		printf("%d ", i);
		i++;
	}

	return 0;
}

以上代码执行结果为:1 2 3 4

原因:当i的值增加到5时,执行break跳出循环,循环结束。

所以,break的作用就是永久地终止循环,一旦执行了break,break外的第一次循环就终止了。

1.2 continue

举例:

#include<stdio.h>
//while循环中的break和continue

int main()
{
	int i = 1;
	while (i <= 10)
	{
		if (i == 5)
		{
			continue;
			//当i的值为5时,跳过本次循环,continue后的语句不执行。
		}
		printf("%d ", i);
		i++;
	}

	return 0;
}

以上代码的执行结果为:死循环

原因:当i的值增加到5时,执行continue跳过了本次循环,continue后的语句(打印及自增)不执行,i的值始终为5,程序由此陷入死循环。

所以,continue可以用来跳过某一次循环continue后面的代码,直接到循环的判断部分进行下一次的判断,如果对循环变量的调整是由continue后面的语句控制,可能会造成程序死循环。 

2.for循环中的break和continue

2.1 break

举例:

#include<stdio.h>
//for循环中的break和continue

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

	return 0;
}

以上代码的执行结果为:1 2 3 4

 原因:当i的值增加到5时,执行break跳出循环,循环结束。

2.2 continue

举例:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//for循环中的break和continue

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

	return 0;
}

以上代码的执行结果为:1 2 3 4 6 7 8 9 10

原因:当i的值增加到5时,执行continue跳过了本次循环,continue后的语句(打印)不执行,i的值继续自增并对判断部分进行判断。