循环和switch语句中的continue、break_switch ,continum__yuan_的博客-程序员宅基地

 原文:https://www.cnblogs.com/lkprof/p/3475423.html

1. 在switch语句中,“case 常量表达式”只相当于一个语句标号, 表达式的值和某标号相等则转向该标号执行,但不能在执行完该标号的语句后自动跳出整个switch 语句,所以会出现继续执行所有后面case语句的情况。 

2. 如果你在switch中使用continue,continue生效是对于while循环
      如果你在switch中使用break,break生效是对于switch

3. 如果在switch外使用continue和break,生效都是对于while循环

#include <stdio.h>
#include <stdlib.h>
using namespace std;

int main()
{
	int k;
	char c;
	for (k = 1, c = 'A'; c < 'F'; k++)
	{
		switch (++c)
		{
		case'A': k++; printf("%c %d\n", c, k); break;
		case'B': k *= 2; printf("%c %d\n", c, k); break;   //跳出switch()执行其后的语句
		case'C': k--; printf("%c %d\n", c, k);           //不论条件为何值,继续执行下一条case判断(case'D':)后面的语句                            
		case'D': k %= 3; printf("%c %d\n", c, k); continue; //不执行switch块后面的语句,跳出“本次”循环直接到外层循环
		case'E': k /= 2; printf("%c %d\n", c, k);
		case'F': k++; printf("%c %d\n", c, k);
		default: k += 2; printf("%c %d\n", c, k);         //所有条件不符合,执行default后面的语句
		}
		k++;
		printf("*********************\n");
	}
	printf("%d\n", k);
	system("pause");
	return 0;
}

运行结果:

 可以看到:

             break是跳出switch语句块,即跳出最近的一个语句块;continue触发时,不仅跳出了switch,也跳过了switch后边的语句,即跳出当前循环;
              switch...case...default语句中,只要有一个case满足,该case后对应的其它case以及default语句都会执行,除非中间有break或continue跳出当前语句块或循环;

 

switch中default

(1)default在switch开头:

若所有case都不满足条件,则执行default,并执行default语句之后的case语句,直到break或结束,

(2)default在switch中间:

若所有case都不满足条件,同上,直接执行default语句,并执行default语句之后的case语句,直到break或结束,

(3)default在switch末尾:

若所有case语句都不满足条件,则执行default语句,结束;若有case满足,则执行case语句直到遇到break或switch语句结束


 

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/reasonyuanrobot/article/details/90317889

智能推荐

SQL Server安装出错解决-程序员宅基地

SQL Server安装出错问题解决先把SQL Server卸载,再把安装时产生的“Microsoft SQL Server”文件夹删掉,在运行注册表,把HKEY_CURRENT_USER\\Software\\Microsoft\\Microsoft SQL Server,和HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft...

x4412开发板&amp;ibox卡片电脑项目实战14-linux驱动的编写步骤-程序员宅基地

从零开始编写linux驱动时,无论采用linux的何种架构,基本上都可以归纳为以下驱动八要素。1.1.1 建立Linux驱动框架Linux内核在使用驱动时首先要装载驱动,在装载过程中进行一些初始化动作,如建立设备文件、分配内存等。在驱动程序中需提供相应函数来处理驱动初始化工作,该函数须使用module_init宏指定。Linux系统在退出时需卸载Linux驱动,在卸载过程中进行一些退出动_x4412开发板

【基础算法整理】-程序员宅基地

一、SVM  1.详细解释:https://www.cnblogs.com/EstherLjy/p/9327872.html 和https://blog.csdn.net/amds123/article/details/53696027  2.推导总结:   3.问题分析:  暂略,有坑再填。二、PCA  1.基本思想和详细解释:..._算法整理怎么解释呢怎么做呢

LeetCode2两个排序数组的中位数_2个排序数组中位数-程序员宅基地

今日题目来自 老表 https://mp.weixin.qq.com/s/_MTj0DgJAWWlzfH4C48sZw给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 。请找出这两个有序数组的中位数。 要求算法的时间复杂度为 O(log (m+n)) 。你可以假设 nums1 和 nums2 不同时为空。# 示例1nums1 = [1, 3]nums2 = [2]..._2个排序数组中位数

ArcGIS10.5中自定义的坐标系转换存放路径在哪?_arcgis自定义地理坐标变换存放位置-程序员宅基地

C:\Users\wa\AppData\Roaming\ESRI\Desktop10.5\ArcToolbox\CustomTransformations\XXX.gtf(如CGCS2000_To_WGS84.gtf/WGS84_To_BJ54/WGS84_To_XIAN80...)_arcgis自定义地理坐标变换存放位置

sersync+rsync实现服务器文件实时同步-程序员宅基地

                 sersync+rsync实现服务器文件实时同步一、为什么要用rsync+sersync架构?1、sersync是基于inotify开发的,类似于inotify-tools的工具2、sersync可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或者某一个目录的名字,然后使用rsync同步的时候,只同步发生变化的文件或者目录二、..._xml parsing error inside file . error: file not found at line 0, column 0.

随便推点

spring下应用@Resource, @Autowired 和 @Inject注解进行依赖注入的差异_注解 resource 不存在依赖异常-程序员宅基地

为了探寻 ‘@Resource’, ‘@Autowired’, 和‘@Inject’如何解决依赖注入中的问题,我创建了一个“Party”接口,和它的两个实现类“Person”,“Organization”。这样我就可以在注入Bean的时候不必使用具体类型(指使用接口类型即可)。这样做也方便我研究当一个接口有多个实现类与之匹配的时候Spring是如何解决依赖注入的不确定性的。public in_注解 resource 不存在依赖异常

关于Pycharm的安装及破解步骤-程序员宅基地

什么是Pycharm,这里我们来听听百度怎么说嗯,快飘了!总之很实用就完事了,这也就是为什么微软要收费的原因,更是我们为什么要破解它的原因所在!不说了,快破解!首先是Pycharm下载地址:点击打开链接下载完成,双击打开,点击下一步先。这里我们可以看出来,微软表示了对我们的欢迎,毕竟马上就要收钱了,很开心,不过我表示,他们高兴的太早了。这里也需要注意一下路径的问题,我们要选择到D盘中Python下...

粒子系统_粒子系统 书-程序员宅基地

作业与练习1、简单粒子制作按参考资源要求,制作一个粒子系统,参考资源使用 3.3 节介绍,用代码控制使之在不同场景下效果不一样2、完善官方的“汽车尾气”模拟使用官方资源资源 Vehicle 的 car, 使用 Smoke 粒子系统模拟启动发动、运行、故障等场景效果3、参考 http://i-remember.fr/en 这类网站,使用粒子流编程控制制作一些效果, 如“粒子光环”可参..._粒子系统 书

webrtc源码分析_webrtc源码编译跳过测试-程序员宅基地

编译运行在成功编译WebRTC源码之后,没有编译成功的可以直接下载我编译好的。https://github.com/hujianhua888/webrtc_vs2015成功编译后,可以运行WebRTC自带的例子体验一对一音视频通信效果。使用src/out/Debug 目录下的peerconnection_client.exe 和 peerconnection_server.exe两个文件,最终运行的架构图如下图所示:效果如下:局域网运行PeerConnection 例子需要用到两台电脑,并..._webrtc源码编译跳过测试

最快线程间数据交换算法,有效避免锁竞争-程序员宅基地

最快线程间数据交换算法,有效避免锁竞争 -- TwoQueues

推荐文章

热门文章

相关标签