1、场景:

  当我们有一个判断条件的时候,显然用if语句比较方便有效。

但当判断条件很多的时候,我们可以使用if语句或者if....eles 语句和switch  case 语句。

2、如何选择

一般情况下,当判断条件较多的情况下,使用switch case语句的效率会高于使用if...else if语句。

switch...case与if...else if的根本区别在于,switch...case会根据你的条件直接跳转到相应的case语句那。

switch...case不用像if...else if那样遍历条件分支直到命中条件,而只需访问对应索引项从而到达目的语句那。

总结:switch语句和if语句的各自使用场景

 switch建议判断固定值的时候用

 if建议判断区间或范围的时候用

 用switch能做的,用if都能做,单反过来则不行

多个if...else和switch...case语句的区别和分析的更多相关文章

  1. if语句,if...else if语句和switch...case语句的区别和分析

    前段时间在工作中遇到了一个关于条件判断语句的问题,在if语句,if else if语句和switch case语句这三者之间分析,使用其中最有效率的一种方法. 所以就将这个问题作为自己第一篇博客的主要 ...

  2. 为什么说在使用多条件判断时switch case语句比if语句效率高?

    在学习JavaScript中的if控制语句和switch控制语句的时候,提到了使用多条件判断时switch case语句比if语句效率高,但是身为小白的我并没有在代码中看出有什么不同.去度娘找了半个小 ...

  3. java中的Switch case语句

    java中的Switch case 语句 在Switch语句中有4个关键字:switch,case break,default. 在switch(变量),变量只能是整型或者字符型,程序先读出这个变量的 ...

  4. switch… case 语句的用法

    switch… case 语句的用法   public class Test7 { public static void main(String[] args) { int i=5; switch(i ...

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

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

  6. 为什么switch...case语句比if...else执行效率高

    在C语言中,教科书告诉我们switch...case...语句比if...else if...else执行效率要高,但这到底是为什么呢?本文尝试从汇编的角度予以分析并揭晓其中的奥秘. 第一步,写一个d ...

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

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

  8. C语言中switch case语句可变参实现方法(case 参数 空格...空格 参数 :)

    正常情况下,switch case语句是这么写的: : : ... ;break ; default : ... ;break ; } 接下来说一种不常见的,但是对于多参数有很大的帮助的写法: 先给一 ...

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

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

  10. python技巧 switch case语句

    不同于C语言和SHELL,python中没有switch case语句,关于为什么没有,官方的解释是这样的 使用Python模拟实现的方法: def switch_if(fun, x, y):    ...

随机推荐

  1. vivo 自研Jenkins资源调度系统设计与实践

    作者:vivo 互联网服务器团队- Wu Qinghua 本文从目前业界实现Jenkins的高可用的实现方案,分析各方案的优缺点,引入vivo目前使用的Jenkins高可用方案,以及目前Jenkins ...

  2. Channel和Stream的单双向问题

    stream分为input和output,为单向. channel为双向,可以write也可以read,但是通过inputstream或者outputstream获取的channle并不能实现双向的数 ...

  3. 继承与多态 动手动脑3方法覆盖(override)”的要点

    方法覆盖(override)"的要点 方法覆盖要求子类与父类的方法一模一样,否则就是方法重载(overload)! 在子类中,若要调用父类中被覆盖的方法,可以使用super关键字. 以下子类 ...

  4. nodejs实现保存文件到本地或者服务器

    nodejs如何将前端传递的文件进行保存在本地或者服务器 一.nodejs获取前端传递的文件file有三种,这里我们推荐使用koa-body 1 // 安装依赖 koa-body 2 npm inst ...

  5. ABAP 辨析ON INPUT|REQUEST|CHAIN-INPUT|CHAIN-REQUEST

    1.逻辑流 在屏幕开发中,存在如下逻辑流: PBO(Process Before Output):屏幕输出之前触发 PAI(Process After Input):用户在屏幕中执行操作触发 POH( ...

  6. ctfshow_web入门 xss

    额,怎么说呢,对xss理解不深刻,虽然做了XSS-LAB,但是感觉不会用,看了群主的视频,知道了原因,用群主的话来说就是,X的是自己... 这个文章写得比较潦草... 准备一个带nc的工具: 无vps ...

  7. 勇者sky遇上的命中注定的恋人白羽竟然是妹妹2

    题目大意 构造一个分段函数来拟合若干点(\(x_i , y_i\)),每一段是一个常函数,即 \[f(x)= \left \{ \begin{aligned} a_1& & (0\le ...

  8. 【NOI2014】随机数生成器

    代码 #include<cstdio> using namespace std; typedef long long LL; const int N = 5000; int n , m , ...

  9. 基线MRI与CRP是依那西普对nr-axSpA的疗效预测因素

    基线MRI与CRP是依那西普对nr-axSpA的疗效预测因素 EULAR2015; PresentID: SAT0258 BASELINE MRI/CRP AS PREDICTORS OF RESPO ...

  10. 代码随想录算法训练营day24 | leetcode 77. 组合

    基础知识 回溯法解决的问题都可以抽象为树形结构,集合的大小就构成了树的宽度,递归的深度构成的树的深度 void backtracking(参数) { if (终止条件) { 存放结果; return; ...