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 + ;
switch (nA)
{
case :
printf("when A is %d, B is", nA, nB);
case :
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来提高效率;

C++基础--if/else和switch/case的区别的更多相关文章

  1. 多重if else和switch case的区别

    int main(void) { int id; scanf_s("%d",&id); switch(id) { case 2: printf("John\n&q ...

  2. 多重if 与 switch case的区别

    多重if:可以做等值操作也可以做区间操作 switch case:只能做等值操作

  3. 10-14C#基础--语句(switch....case和for...循环)

    10-14C#基础--语句(2) 一.课前作业:“跟电脑猜拳” 二.switch(定义的变量,参数值)......case.... 注:switch...case大多用于值类型的判断,这里不同于if表 ...

  4. c语言基础表达式, 关系运算符, 逻辑运算符, 位运算符, 数据的取值范围, 分支结构(if...else, switch...case)

    1.表达式: 表达式的判断是有无结果(值), 最简单的表达式是一个常量或变量, 如:12, a, 3 + 1, a + b, a + 5 都是表达式 2.BOOL(布尔)数据类型: c语言中除了基本数 ...

  5. Python | 基础系列 · Python为什么没有switch/case语句?

    与我之前使用的所有语言都不同,Python没有switch/case语句.为了达到这种分支语句的效果,一般方法是使用字典映射: def numbers_to_strings(argument): sw ...

  6. Java基础语法学习(1)switch...case

    switch...case的标准语法 switch(待选择的变量) { case 值1:语句1; break; case 值2:语句2: break; ....... case 值n:语句n; bre ...

  7. JavaScript基础知识(if、if else、else if、while、switch...case语句)

    13.语句 概念:就是分号(:) 代表一条语句的结束 习惯:一行只编写一条语句:一行编写多条语句(代码可读性较差) 语句块:可以包含多条语句     "{ }"将多条语句包裹 u ...

  8. Java基础之循环语句、条件语句、switch case 语句

    Java 循环结构 - for, while 及 do...while 顺序结构的程序语句只能被执行一次.如果您想要同样的操作执行多次,,就需要使用循环结构. Java中有三种主要的循环结构: whi ...

  9. J S 脚本语言 if() { if { } else { } } var a =100; switch { case ( ) break ; } 基础详解 , 最下面有例子

    注释语法 注释语法// 多行注释/ JS输出语句 JS样式尽量靠最下面写 <script type="text/javascript">//嵌入JS开始代码 //ale ...

随机推荐

  1. Python练习_Python初识_day2

    题目 1.作业 1.判断下列逻辑语句的True,False. 1)1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < ...

  2. 3、java基础:抽象类与接口的区别

    抽象类 我们都知道在面向对象的领域一切都是对象,同时所有的对象都是通过类来描述的,但是并不是所有的类都是来描述对象的.如果一个类没有足够的信息来描述一个具体的对象,而需要其他具体的类来支撑它,那么这样 ...

  3. 【Zookeeper】实现负载均衡原理

    一.思路 使用Zookeeper实现负载均衡原理,服务器端将启动的服务注册到,zk注册中心上,采用临时节点.客户端从zk节点上获取最新服务节点信息,本地使用负载均衡算法,随机分配服务器. 服务端启动的 ...

  4. 二〇一八-美团工程师面试解析(Java)

    一轮面试: 小数是怎么存的 算法题:N二进制有多少个1 Linux命令(不熟悉 JVM垃圾回收算法 C或者伪代码实现复制算法 volatile 树的先序中序后序以及应用场景 Mysql存储记录的数据结 ...

  5. Maven打包Web项目成war包——4

    1. 需要安装maven 的war插件支持 在pom.xml里面配置war插件       2. 运行命令: mvn clean package      3.部署到Tomcat下面发布,并访问!

  6. curl命令的用法

    curl 命令详解   命令事例 发送POST请求: 如果传输文件:curl -F "blob=@tmp.txt;type=text/plain" localhost:8080/r ...

  7. 【二进制优化-多重背包】zznu-oj-2120 : 安详--如何用尽钱币打赏主播获得最大好感度

    2120 : 安详 题目描述 spring最近喜欢上了B站新秀主播,身为顿顿吃黄焖鸡的土豪,当然要过去打赏一番,但是spring还是喜欢精打细算,所以在打赏的时候,想要掏出有限的钱,获得主播的最大好感 ...

  8. hive的shell用法(脑子糊涂了,对着脚本第一行是 #!/bin/sh 疯狂执行hive -f 结果报错)

    hive脚本的执行方式 hive脚本的执行方式大致有三种: hive控制台执行: hive -e "SQL"执行: hive -f SQL文件执行:参考hive用法: usage: ...

  9. 大数据之路week04--day05(java 正则表达式)

    1.1 正则表达式 1.2 简介 Regular Expression  正则表达式   常简称为: regex.正则 正则表达式是一整套约束字符串的语法规则,独立于任何编程语言 正则表达式 方便.灵 ...

  10. python+Appium自动化:日志logging模块

    日志级别 debug.info.warn.error.critical五个级别 logging模块构成(四部分) logger(记录器,用于日志采集) Handler(处理器,将日志记录发送到合适的路 ...