switch与跳转表

一、switch跳转语句

类似于多路开关,可以根据给定条件匹配到符合条件的语句。正式点来说,是根据一个整形数值来进行多路分支的一种结构。在处理具有多种可能结果时,这种语句非常有效。它不仅挺高了C代码的可读性和逻辑性,而且使用跳转表来作为底层实现基础。

switch基本框架为

int condition
switch(condition)
{
	case condition1:statements ;
	case condition2:statements;
	case condition3:statements;
	
    ....
	case conditionn:statements;
	default:
	default_statment;
}

下面我们来具体实现以下

1 #include<stdio.h>
  2 #include<stdlib.h>
  3 
  4 int main()
  5 {
  6   int i=0;
  7   switch(i)
  8   {
  9     case 0:printf("i am 1\n");
 10     case 1:printf("i am 2\n");
 11     case 2:printf("i am 3\n");
 12     default:printf("error\n");
 13   }
 14 }

我们看一下结果:


发现我们只是想匹配i=1这个项,但是后面的也被执行了,为啥?我先抛一砖-->与switch的实现有关系。如何解决什么问题呢?每次case结束后break

  1 #include<stdio.h>
  2 #include<stdlib.h>
  3 
  4 int main()
  5 {
  6   int i=0;
  7   switch(i)
  8   {
  9     case 0:printf("i am 1\n"); break;
 10     case 1:printf("i am 2\n"); break;
 11     case 2:printf("i am 3\n"); break;
 12     default:printf("error\n"); break;
 13   }
 14 }


提到break,我们不经意间会联想到它的兄弟&#

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值