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)在使用上有些差異,因此在實際應用中要具體判斷,同時也感謝大傢的觀看,以上是本文的全部內容。

推薦閱讀: