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

目录
  • 前言
  • 一、循环体中两者的作用
    • 1.while循环
    • 2.for循环
    • 3.do while循环
  • 二、switch语句
  • 总结

前言

本文将通过简单的实例来详细分析在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)在使用上有些差异,因此在实际应用中要具体判断,同时也感谢大家的观看,以上是本文的全部内容。

(0)

相关推荐

  • C语言break和continue的语句用法

    目录 1.知识了解 2.for循环中break和continue语句的用法 3.while循环continue语句的用法 ① 4.switch语句中break和continue语句的用法 1.知识了解 在c语言中,为了使用循环控制更灵活,c语言允许在特定条件成立时使用break语句和continue语句控制循环的执行过程 ♞break:用于循环语句和switch语句中,它跳出所在的那一层循环语句或者switch语句. ♞continue:用于循环语句中,他跳出所在的那一轮循环,继续下一轮循环.

  • 深入c语言continue和break的区别详解

    自认为C语言还算入门的人,看来还是高估自己了.没想到在这个地方还有这么有趣的东西.有些话看来要仔细深究才能真正入门啊.... ================================================================================ 复制代码 代码如下: #include <stdio.h> int main(void) {    int flag=0;    for(int j=0; j <2; j++) {       if(j=

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

    目录 前言 一.循环体中两者的作用 1.while循环 2.for循环 3.do while循环 二.switch语句 总结 前言 本文将通过简单的实例来详细分析在C语言中break语句和continue语句的用法和区别,欢迎大家批评指正.(部分内容稍有重复,大家可自行选择跳转目录) 一.循环体中两者的作用 1.while循环 我们先看一个循环示例:此程序在屏幕上打印出数字1-10 int main() { int i = 1; while (i <= 10) { printf("%d &

  • C语言中const和C++中的const 区别详解

    C语言中const和C++中的const 区别详解 C++的const和C语言的#define都可以用来定义常量,二者是有区别的,const是有数据类型的常量,而宏常量没有,编译器可以对前者进行静态类型安全检查,对后者仅是字符替换,没有类型安全检查. 而C语言中的const与C++也有很大的不同,在C语言中用const修饰的变量仍是一个变量,表示这个变量是只读的,不可显示地更改,而在C++中用const修饰过后,就变成常量了.例如下面的代码: const int n=10; int a[n];

  • Go语言中break label与goto label的区别

    与其他语言一样,Go语言也支持label(标签)语法: 分别是break label和 goto label 这样使得编程时变得异常灵活,但是由于在大项目中不好控制,所以建议能不使用goto label就不要使用 break label 和 goto label都能在循环中跳出循环,但是又有些不同之处. 首先说下break label,break的跳转标签(label)必须放在循环语句for前面,并且在break label跳出循环不再执行for循环里的代码. 当我们把标签定义在break的下面

  • Go语言中init函数和defer延迟调用关键词详解

    Go语言中init函数和defer延迟调用关键词 golang里面有两个保留函数 main 函数(只能应用于package main) init 函数(能够应用于所有的package) go程序会自动调用 init()和main() 所以你不能在任何地方调用这两个函数 package main 必须包含一个main 函数,但是每个package中的init函数都是可选的 一个package 里可以写多个init函数,建议每个包中只写一个init函数 单个包中代码执行顺序如下 main包 -->

  • go语言中sort包的实现方法与应用详解

    前言 Go语言的 sort 包实现了内置和用户定义类型的排序,sort包中实现了3种基本的排序算法:插入排序.快排和堆排序.和其他语言中一样,这三种方式都是不公开的,他们只在sort包内部使用.所以用户在使用sort包进行排序时无需考虑使用那种排序方式,sort.Interface定义的三个方法:获取数据集合长度的Len()方法.比较两个元素大小的Less()方法和交换两个元素位置的Swap()方法,就可以顺利对数据集合进行排序.sort包会根据实际数据自动选择高效的排序算法. 之前跟大家分享了

  • C语言中fchdir()函数和rewinddir()函数的使用详解

    C语言fchdir()函数:改变当前工作目录 头文件: #include <unistd.h> 定义函数: int fchdir(int fd); 函数说明:fchdir()用来将当前的工作目录改变成以参数fd 所指的文件描述词. 返回值:执行成功则返回 0, 失败返回-1, errno 为错误代码. 范例 #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <

  • C语言中lseek()函数和fseek()函数的使用详解

    C语言lseek()函数:移动文件的读写位置 头文件: #include <sys/types.h> #include <unistd.h> 定义函数: off_t lseek(int fildes, off_t offset, int whence); 函数说明: 每一个已打开的文件都有一个读写位置, 当打开文件时通常其读写位置是指向文件开头, 若是以附加的方式打开文件(如O_APPEND), 则读写位置会指向文件尾. 当read()或write()时, 读写位置会随之增加,ls

  • C语言中getchar()的返回类型为什么是int详解

    前言 在C语言中有个重要的库函数getchar(),可从终端获得一个字符的ASCII码值.在终端输入字符时并非输入一个字符就会返回,而是在遇到回车换行前,所有输入的在C语言中有个重要的库函数getchar(),可从终端获得一个字符的ASCII码值.在终端输入字符时并非输入一个字符就会返回,而是在遇到回车换行前,所有输入的字符都会缓冲在键盘缓冲器中,直到回车换行一次性将所有字符按序依次赋给相应的变量,在这里一定要注意最后一个字符即'\n',该字符也会赋给一个相应的变量(当然这要你定义的用来接收字符

  • R语言中ifelse、which、%in%的用法详解

    ifelse.which.%in%是R语言里极其重要的函数,以后会经常在别的程序中看到. ifelse ifelse是if条件判断语句的简写,它的用法如下: ifelse(test,yes,no) 参数 描述 test 一个可以判断逻辑表达式 yes 判断为 true 后返回的对象 no 判断为 flase 后返回的对象 举例: x = 5 ifelse(x,1,0) 如果x不等于0,就返回1,等于0就返回0. which which 返回条件为真的句柄,给正确的逻辑对象返回一个它的索引. wh

  • R语言中c()函数与paste()函数的区别说明

    c()函数:将括号中的元素连接起来,并不创建向量 paste()函数:连接括号中的元素 例如 c(1, 2:4),结果为1 2 3 4 paste(1, 2:4),结果为"1 2" "1 3" "1 4" c(2, "and"),结果为"2" "and" paste(2, "and"),结果为"2 and" 补充:R语言中paste函数的参数sep

随机推荐