switch使用总结

最近在重温C++Primer,我要收回我以前说它适合作为一本工具书的说法,对于一个老手,这本书的编写细致也是值得好好品尝的。

他的基本结构如下:

switch(expression){
		statement
	}

对于圆括号内表达式的值与其后列出的关键字做比较,实现switch语句的功能。表达式必须产生一个整数结果,其值与每个case的值比较。关键字case和它所关联的值称为case标号。每个case标号的值都必须是一个常量表达式。除此之外,还有一个特殊的case标号---default标号。

          这条语句中最容易被误解的是:以为程序中会执行匹配的case标号相关联的语句。实际上,程序从该点开始执行,并跨越case边界执行其他语句,直到switch结束或者遇到break语句为止。

我们先看一个例子,下面的程序代码功能是统计元间字母出现的次数,代码如下:

switch(t){
	case 'a':i ++;
	case 'e':j ++;
	case 'i':k ++;
	case 'o':g ++;
	case 'u':h ++;
}



假如我们输入的是'u',则输出中,只有h为1,其它为1;如果输入的是'o',则g和h都为1,其它为0.所以我们在使用swithc结构的时候要注意这个表达语句的工作流程。

这个程序也让我们体会到在case里面添加break的作用,但是有的时候,我们是希望两个或者多个case值由动作序列来完成 ,比如,我想写个程序,计算包含的元音有多少个,不区分大小写,这里,我们可以按下面的方法来写。

switch(t){
	case 'a':
	case 'A':
		i ++;
		break;
	case 'e':
	case 'E':
		j ++;
		break;
	case 'i':
	case 'I':
		k ++;
		break;
	case 'o':
	case 'O':
		g ++;	
		break;
	case 'u':
	case 'U':
		h ++;
		break;
	}
}

       最后一点就是default标号,我个人觉得,我们还是要养成添加default的好习惯,因为除了我们列出来的case情况,我们还有很多情况,有时间是需要处理的,有时候不需要处理,但是如果悬空在建阳城其实是不好的。定义一个default标号也可以告诉读者,这种情况我们已经考虑到了,只是没有要执行的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值