您好,欢迎来到刀刀网。
搜索
您的当前位置:首页C++基础--ifelse和switchcase的区别

C++基础--ifelse和switchcase的区别

来源:刀刀网
C++基础--ifelse和switchcase的区别

if和switch的区别:⼀、语句的格式: if/else的写法格式如下:

int nA, nB;

scanf_s(\"%d\", &nA); //输⼊整数并赋值给变量a scanf_s(\"%d\", &nB);

(\"%d\", &nB); //输⼊整数并赋值给变量b if (nA > nB) {

printf(\"%d greater than %d\", nA, nB); } else {

printf(\"%d smaller than %d\", nA, nB); }

swith/case的写法如下:

int nA, nB;

scanf_s(\"%d\", &nA); //输⼊整数并赋值给变量a nB = nA + 1; switch (nA) {

case 1:

printf(\"when A is %d, B is\", nA, nB); case 2:

printf(\"when A is %d, B is\", nA, nB); default:

printf(\"when A is %d, B is\", nA, nB); }

⼆、逻辑结构:

从上⾯if/else与switch/case格式的区别可以看出:

  A: if/else能根据逻辑判断输出相应的语句,也就是说if/else更多的是进⾏逻辑判断;

   switch/case从某种⾓度上来说,没有相应的逻辑⽐较判断,⽽是根据给出项跳转到相应的分⽀;  B: if判断相应的逻辑语句,返回true/false,每条if语句都会执⾏⼀次逻辑判断;    switch/case会建⽴相应的跳转表,根据跳转表的项跳转到相应的分⽀。三、效率

  从两种语句的判断上可以看出:

  A: 从某种程度上,Switch/case⽐if/else的效率要⾼,除⾮if/else在第⼀次逻辑判断就为true;  B: Switch/case需要建⽴⼀张跳转表,因此需要⼀定的空间的,更像是以空间换效率。  C: if/else能进⾏逻辑判断,⽽Switch不⾏,因此在需要进⾏逻辑判断时使⽤if/else语句;四、⽀持的数据类型

  Switch/case只⽀持部分数据类型:int、long和枚举类型,由于byte、short、char都可以隐含转换为int,因此:switch⽀持的数据类型为:byte、short、char,int、long和枚举类型,不⽀持:boolean、float、double;  if/else⽀持更多的数据类型,如String, double等;

建议:在能⽤Switch/case的情况下,尽量⽤Switch/case来提⾼效率;

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务