精华内容
下载资源
问答
  • switch case用法详解

    万次阅读 多人点赞 2019-06-09 19:43:07
    switch case用法详解 switch 是“开关”的意思,它也是一种“选择”语句,但它的用法非常简单。switch 是多分支选择语句。说得通俗点,多分支就是多个 if。从功能上说,switch 语句和 if 语句完全可以相互取代。但...

    switch case用法详解

    switch 是“开关”的意思,它也是一种“选择”语句,但它的用法非常简单。switch 是多分支选择语句。说得通俗点,多分支就是多个 if。
    从功能上说,switch 语句和 if 语句完全可以相互取代。但从编程的角度,它们又各有各的特点,所以至今为止也不能说谁可以完全取代谁。
    当嵌套的 if 比较少时(三个以内),用 if 编写程序会比较简洁。但是当选择的分支比较多时,嵌套的 if 语句层数就会很多,导致程序冗长,可读性下降。因此C语言提供 switch 语句来处理多分支选择。所以 if 和 switch 可以说是分工明确的。在很多大型的项目中,多分支选择的情况经常会遇到,所以 switch 语句用得还是比较多的。
    switch的一般形式如下:

    switch (表达式)
    {
        case 常量表达式1:    语句1
        case 常量表达式2:    语句2
           ┇
        case 常量表达式n:    语句n
        default:        语句n+1
    }

    说明:
    1) switch 后面括号内的“表达式”必须是整数类型。也就是说可以是 int 型变量、char 型变量,也可以直接是整数或字符常量,哪怕是负数都可以。但绝对不可以是实数,float 型变量、double 型变量、小数常量通通不行,全部都是语法错误。
    2) switch 下的 case 和 default 必须用一对大括号{}括起来。
    3) 当switch后面括号内“表达式”的值与某个case后面的“常量表达式”的值相等时,就执行此case后面的语句。执行完一个case后面的语句后,流程控制转移到下一个case继续执行。如果你只想执行这一个case语句,不想执行其他case,那么就需要在这个case语句后面加上break,跳出switch语句。
    再重申一下:switch是“选择”语句,不是“循环”语句。很多新手看到break就以为是循环语句,因为break一般给我们的印象都是跳出“循环”,但break还有一个用法,就是跳出switch。
    4) 若所有的 case 中的常量表达式的值都没有与 switch 后面括号内“表达式”的值相等的,就执行 default 后面的语句,default 是“默认”的意思。如果 default 是最后一条语句的话,那么其后就可以不加 break,因为既然已经是最后一句了,则执行完后自然就退出 switch 了。
    5) 每个 case 后面“常量表达式”的值必须互不相同,否则就会出现互相矛盾的现象,而且这样写造成语法错误。
    6) “case常量表达式”只是起语句标号的作用,并不是在该处进行判断。在执行 switch 语句时,根据 switch 后面表达式的值找到匹配的入口标号,就从此标号开始执行下去,不再进行判断。
    7) 各个 case 和 default 的出现次序不影响执行结果。但从阅读的角度最好是按字母或数字的顺序写。
    8) 当然你也可以不要 default 语句,就跟 if…else 最后不要 else 语句一样。但最好是加上,后面可以什么都不写。这样可以避免别人误以为你忘了进行 default 处理,而且可以提醒别人 switch 到此结束了。
    但是需要注意的是,default 后面可以什么都不写,但是后面的冒号和分号千万不能省略,省略了就是语法错误。很多新手在这个地方很容易出错,要么忘了分号,要么忘了冒号,所以要注意!
    下面的是一个小例子:

    function GetVINValue(vin)

            {

                var a = 0;

                switch (vin)

                {

                    case '0':

                    case '1':

                    case '2':

                    case '3':

                    case '4':

                    case '5':

                    case '6':

                    case '7':

                    case '8':

                    case '9':

                    a = vin.toString();//转换类型

                        break;

                    case 'A':

                    case 'J':

                    case 'a':

                    case 'j':

                        a = 1;

                        break;

                    case 'B':

                    case 'K':

                    case 'S':

                    case 'b':

                    case 'k':

                    case 's':

                        a = 2;

                        break;

                   default:

                        break;

                }

                return a;

            }

    展开全文
  • switch case语句

    千次阅读 2019-04-26 17:43:30
    switch case语句switch case语法 switch case语法 switch(expression){ case value : //语句 break; //可选 case value : //语句 break; //可选 //你可以有任意数量的case语句 default : //可选 ...

    switch case语句

    switch case语法

    switch(expression){
        case value :
           //语句
           break; //可选
        case value :
           //语句
           break; //可选
        //你可以有任意数量的case语句
        default : //可选
           //语句
    
    
    • switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
    • switch 语句中的变量类型为:
      • byte、short、int、char.
      • Java SE7开始支持字符串String case 标签必须为字符串常量或

    字面量:在计算机科学中是用于表达源代码中一个固定值的表达方式

    • switch 语句中可以拥有很多个case语句。且每个case的格式必须为case比较值:
    • case与句中的值的数据类型必须与变量的数据类型相同,且只能是常量或字面常量。
    • 当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。
    • 遇到break语句时,switch语句终止。程序继续执行switch后的语句。

    case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。

    展开全文
  • Java switch case 语句

    2018-09-03 19:16:09
    Java switch case 语句 switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。 语法 switch case 语句语法格式如下: switch(expression){ case value : //语句 break; //可选 ...

    Java switch case 语句

    switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
    语法

    switch case 语句语法格式如下:

    switch(expression){
        case value :
           //语句
           break; //可选
        case value :
           //语句
           break; //可选
        //你可以有任意数量的case语句
        default : //可选
           //语句
    }

    switch case 语句有如下规则:

    switch 语句中的变量类型可以是: byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。
    
    switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。
    
    case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。
    
    当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。
    
    当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。
    
    switch 语句可以包含一个 default 分支,该分支必须是 switch 语句的最后一个分支。default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句。
    

    switch case 执行时,一定会先进行匹配,匹配成功返回当前 case 的值,再根据是否有 break,判断是否继续输出,或是跳出判断。

    public class Test {
       public static void main(String args[]){
          //char grade = args[0].charAt(0);
          char grade = 'C';
    
          switch(grade)
          {
             case 'A' :
                System.out.println("优秀"); 
                break;
             case 'B' :
             case 'C' :
                System.out.println("良好");
                break;
             case 'D' :
                System.out.println("及格");
             case 'F' :
                System.out.println("你需要再努力努力");
                break;
             default :
                System.out.println("未知等级");
          }
          System.out.println("你的等级是 " + grade);
       }
    }

    以上代码编译运行结果如下:

    良好
    你的等级是 C
    

    如果 case 语句块中没有 break 语句时,JVM 并不会顺序输出每一个 case 对应的返回值,而是继续匹配,匹配不成功则返回默认 case。

    public class Test {
       public static void main(String args[]){
          int i = 5;
          switch(i){
             case 0:
                System.out.println("0");
             case 1:
                System.out.println("1");
             case 2:
                System.out.println("2");
             default:
                System.out.println("default");
          }
       }
    }

    以上代码编译运行结果如下:

    default
    

    如果 case 语句块中没有 break 语句时,匹配成功后,从当前 case 开始,后续所有 case 的值都会输出。

    public class Test {
       public static void main(String args[]){
          int i = 1;
          switch(i){
             case 0:
                System.out.println("0");
             case 1:
                System.out.println("1");
             case 2:
                System.out.println("2");
             default:
                System.out.println("default");
          }
       }
    }

    以上代码编译运行结果如下:

    1
    2
    default
    

    如果当前匹配成功的 case 语句块没有 break 语句,则从当前 case 开始,后续所有 case 的值都会输出,如果后续的 case 语句块有 break 语句则会跳出判断。

    public class Test {
       public static void main(String args[]){
          int i = 1;
          switch(i){
             case 0:
                System.out.println("0");
             case 1:
                System.out.println("1");
             case 2:
                System.out.println("2");
             case 3:
                System.out.println("3"); break;
             default:
                System.out.println("default");
          }
       }
    }

    以上代码编译运行结果如下:

    1
    2
    3
    

    展开全文
  • 用直接删除switch case的方法消除switch case以下的代码的代码看似极具娱乐性,然而却都是真实案例。第一个案例来自于2001年左右的一个C++产品,给人印象如此之深,以致于十多年来记忆几乎分毫不差:public int ...

    用直接删除switch case的方法消除switch case

    以下的代码的代码看似极具娱乐性,然而却都是真实案例。

    第一个案例来自于2001年左右的一个C++产品,给人印象如此之深,以致于十多年来记忆几乎分毫不差:

    public int returnN(int n) {
        switch (n) {
            case 1: return 1;
            case 2: return 1;
            case 3: return 1;
            case 4: return 1;
            case 5: return 1;
            case 6: return 1;
            default: return n;
        }
    }

    下面是一个看似有点差别的例子,但实际上是一回事。此案例发现于2017年的一个Java代码中:

    public int functionN(int n) {
        int result = 0;
        switch (n) {
            case 1: 
                result = function(1);
                break;
            case 2: 
                result = function(2);
                break;
            case 3: 
                result = function(3);
                break;
            case 4: 
                result = function(4);
                break;
            case 5: 
                result = function(5);
                break;
            case 6: 
                result = function(6);
                break;
            default: result = function(n);
        }
        return result;
    }

    下面的例子同样来自2017年的一个Java代码。虽然是用if-else if-else实现的,却有“异曲同工之妙”:

    public List<String> totalList(List<String> listLeft, List<String> listRight) {
        List<String> listAll = new ArrayList<>();
    
        if (!listLeft.isEmpty() && !listRight.isEmpty()) {
            listAll.addAll(listLeft);
            listAll.addAll(listRight);
        } else if (!listLeft.isEmpty() && listRight.isEmpty()) {
            listAll.addAll(listLeft);
        } else {
            listAll.addAll(listRight);
        }
    
        return listAll;
    }
    

    提示:上述代码中的if-else结构实际只需要两行代码,而且这两行代码本来就已经写在里边了。

    这个案例是企业团队自己提供给我的,因为我当时“夸下海口”说任何else都是可以被删除的(实际上尽管不断受到各种挑战,迄今为止仍然没有else存活的特例)。当我看了足足一分钟尝试确认里边的逻辑的时候(之所以花费这么多时间,一则代码差别细微令人眼花缭乱,二则当时觉得既然用这么多代码而非两行代码,一定有其妙用),团队甚至自豪地说“我们的业务是很复杂的,不是那么容易看懂的……”

    为何专业人士开发的代码,围观的整个团队都感觉在正常不过了,却会在几秒钟内被外行看出破绽?

    人们常说:“美无处不在,只是缺少发现美的眼睛”。实际上反过来说也很有道理:

    垃圾代码无处不在,只是缺少发现垃圾代码的眼睛。

    若以憎恶的眼光审视所有switch case, if-else if-else,甚至是单个if-else,会发现每一处都存在或大或小的问题。即使在那些无关痛痒的地方,删除之前至少不会比删除之后的代码好。比如下面这个几乎每个产品中都有不止一处的例子:

    if (value == true) {
        return true;
    } else {
        return false;
    }
    

    展开全文
  • 深入理解switch case

    万次阅读 多人点赞 2018-12-06 16:12:55
    switch case语句是我们编程中常用的一个表达式。它的语法如下1: switch (expression) { case value1: // 当 expression 的结果与 value1 匹配时,执行此处语句 [break;] case value2: // 当 expression 的结果...
  • C语言switch case语句详解

    万次阅读 多人点赞 2020-02-22 10:36:58
    当分支比较少的时候我们使用if else语句解决,当分支比较多的时候,我们要使用switch case语句解决,针对分支的复杂性选择合适的程序解决。 当分支过多时,用 if else 处理会不太方便,而且容易出现 if else 配对...
  • // switch case switch(值) { case 情况一: 执行的代码 break;(加break以后后面的代码不执行了,break 中断) case 情况二: 执行的代码 break; case 情况三: 执行的...
  • switch case语句的用法

    千次阅读 2019-10-31 16:26:41
    switch case语句的用法 我们首先来看一下switch case 语句的一般形式是怎样的 switch(表达式){ case 常量1 : 代码块; break; case 常量2: 代码块; ...
  • Switch case break/ default总结

    万次阅读 多人点赞 2018-05-09 09:22:49
    1.写switch case语句不加break会怎样。switch case语句犯得错误:会犯这种错误,都是基础不牢固导致的。但是这样的错误却花费了我数小时去debug.想来真是很让人郁闷。看一段代码:(不想看代码直接看后面总结)...
  • JS中的判断语句之switch case

    万次阅读 2020-03-07 00:11:07
    在进行条件判断时,如果判断条件是这个变量在等于什么值时需要做的事,而不是大于或小于做的事,那么这种情况下可以使用switch case进行书写代码 1.switch case switch (变量名){ case 值1: 需要做的事情; case...
  • switch case里使用continue

    千次阅读 2017-09-02 00:09:24
    switch case里使用continuecontinue只能在循环体里使用while,do while,forcontinue不能只在switch case里使用顾名思义,continue只能在循环体内使用,若想在switch里使用continue,则需要switch case在循环体内
  • java中 switch case的用法

    千次阅读 2019-05-26 17:26:46
    1:switch case与break搭配使用时****如下:a、当i=1与case中的值匹配时会输出对应语句,并跳出当前switch语句,没有匹配时输出default语句对应语句。因此当i=1时以下会输出 1、666;当i=3时没有case的值对应上则输出...
  • uniapp里使用switch case

    千次阅读 2020-06-16 09:59:54
    uniapp学习记录 1.switch case使用 int类型也要用字符串判断 case “0”:{用大括号}
  • C++中的switch case 语句

    千次阅读 2019-04-18 10:45:00
    在接触流程控制语句switch case的时候,感觉这个很有意思,就花了点时间去慢慢的去深入了解它,并且和if语句一起嵌套使用,就找了个题目来练练手, 这个就是通过输入年份和月份,来判断年份是否为闰年,并且可以知道...
  • switch case语句,多个case匹配相同的情况:

    万次阅读 多人点赞 2018-08-20 11:35:43
    switch case语句,多个case匹配相同的情况: case 4: case 6: case 9: case 11: numDays = 30; break;
  • java switch case 语句

    千次阅读 2018-11-01 19:06:37
    switch case语句用来判断一个变量与一系列值中的某个值是否相等,每一个值成为一个分支 switch(expression){  case value : //语句  break; //可选  case value : //语句  break; //可选  ...
  • 今天使用switch case时突然出现了Constant expression required 让我很是不理解,先看一下我的代码 switch (deviceType){ case DeviceTypeConsts.DEVICE_TYPE_PHONE: // 获取用户id Integer particip
  • matlab的 switch case语句

    千次阅读 2020-12-03 19:54:52
    switch case switch 开关表达式 case 表达式1(用来判断的句子) 语句组1(想要反馈是结果) case 表达式2 语句组2 ······ otherwise 语句组··· end (这里不显示空格好难受···) 举个例子 这里的syms...
  • switch case判断成绩等级

    万次阅读 2017-09-24 11:00:41
    有很多判断成绩等级的方法 ...这里介绍使用switch case如何判断成绩等级 直接上代码了 public class Score { private static Scanner scanner; public static void main(String[] args) { scanner = new Scanner(S
  • C#有效使用switch case语句

    万次阅读 2018-08-04 15:44:41
    switch case语句适用于从一组互斥的分支中选择一个执行分支。 值得注意的就是case的值必须是常量表达式不允许是变量。 C#中的switch case语句更安全,如果激活块中靠前的一个
  • Qt使用switch case语句抓取QString类型

    千次阅读 2020-04-08 12:01:21
    Qt使用switch case语句抓取QString类型 在编写Qt程序时,发现switch case 无法直接抓取QString类型进行比较 所以使用了QStringList进行操作 使用QStringList 插入List的顺序对应case语句的0,1,…… QStringList ...
  • [SwitchCase]C语言编程switch case的使用

    千次阅读 2015-07-11 00:17:54
    问题描述:当要选择的分支过多时,还是用if-else结构的话会很冗长,此时选择switch-case结构来解决是很实用的。但使用switch-case需要注意switch(variable)括号中的变量类型只能是char或int一类的类型,其他的类型的...
  • Java在switch case语句中声明变量

    千次阅读 2020-04-27 21:48:03
    Java在switch case语句中声明变量 Java中使用switch case语句时很容易出现以下两个报错: 1、Duplicate local veriable out. (局部变量重复) 2、The local veriable out may not have been initialized. (局部...
  • python3的switch case

    万次阅读 2017-11-18 10:51:40
    第一次学习python,发现python3没有switch case ,查看了有关资料,在不涉及class的下,有用if ... elif......elif.....else的 还有用 map的 所以在这里我采用了map的方法。card=[] def fun1(): #往card中添加元素 ...
  • 本篇文章介绍如何使用【switch case 语句 】,仅是对自己学习的记录,并没有深入分析每个模块。感谢支持! //题一: /1.使用 switch把小写类型的char型转为大写。只转换a,b,c,d,e.其它的输 出“ other"./ ...
  • 支持6中数据类型 1:枚举 public class switchcase { enum game{ BAS("aa"), SWIM("bb"); private String a; game(String bb) { this.a=bb; } public Stri...
  • switch case加范围判断

    千次阅读 2018-10-23 17:14:00
    switch case是可以加范围判断的,但是语法有少许变化,参数不能写在switch里面,而是写在外面,如:   1 const i = 3; 2 switch (true) { 3 case (i <= 0): 4 console.log("small"); 5 break; ...
  • switch case 与if else的效率问题

    千次阅读 2018-07-26 14:49:59
    最近看突然看到switch case 与if else的效率问题,明面上说是switch case不需要像if else一样挨个的去执行去判断条件,所以效率高 很快,转念一想,switch case 为什么不需要判断,深入了解了一下switch case,云里...
  • C语言中的switch case比较

    千次阅读 2017-01-05 00:24:45
    C语言中的switch case比较switch case 在比较时是将switch的变量和case的变量都转换成int进行比较。直观点的话看下面代码。#include <iostream>int func(char i) { if (i ) { printf("i is an Negative\n"); } ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,001,111
精华内容 400,444
关键字:

switchcase