精华内容
下载资源
问答
  • 如何在switch语句中使用枚举作为case入参? 代码示例 枚举 public enum ENUMM { A, B } switch语句 //入参可直接传A或B public void switchEnum(@RequestParam ENUMM enumm) { switch (enumm) { case ...

    问题

    如何在switch语句中使用枚举作为case入参?

    代码示例

    枚举

    public enum ENUMM {
    
        A,
    
        B
    }

    switch语句

    //入参可直接传A或B 
    public void switchEnum(@RequestParam ENUMM enumm) {
            switch (enumm) {
                case A:
                    ...
                    break;
                case B:
                    ...
                    break;
                default:
                    ...
            }
    }

     

    展开全文
  • 它们最初是int但我想将它们更改为Integer所以我可以对它们做一个等号(即避免NPE的MY_ID.equals(..))当我将它们更改为Integer时,我的switch语句中出现错误. docs说Integer交换机中应该没问题.去引用[Switch] also ...

    出于各种商业原因,我想在我的一个类中保留一些静态ID.它们最初是int但我想将它们更改为Integer所以我可以对它们做一个等号(即避免NPE的MY_ID.equals(..))

    当我将它们更改为Integer时,我的switch语句中出现错误. docs说Integer在交换机中应该没问题.

    去引用

    [Switch] also works with enumerated types (discussed in Enum Types),

    the String class, and a few special classes that wrap certain

    primitive types: Character, Byte, Short, and Integer (discussed in

    Numbers and Strings).

    在下面的代码中,如果我是一个int,那么它编译.当它是一个整数时,它并不是说需要一个常量表达式.我尝试过.intValue(),但这也不起作用.

    我真的很蠢吗?还是完全误读了docs?

    private static final Integer i = 1;

    @Test

    public void test() {

    switch(mObj.getId()){

    case i: //do something

    default: //do something default

    }

    }

    感谢您的任何指示.暂时我将它们保持为int并执行新的Integer(myint).equals(…)

    展开全文
  • 本节书摘来自华章出版社《Hack与HHVM权威指南...1.5.6 在switch语句中的越界 在switch语句中有从一个分支不小心越界到另外一个分支的常见错误。Hack添加了一条规则来捕获这种错误。下面将展示一个案例,从一个case分...

    本节书摘来自华章出版社《Hack与HHVM权威指南》一书中的第1章,第1.5.6节,作者 Owen Yamauchi,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

    1.5.6 在switch语句中的越界

    在switch语句中有从一个分支不小心越界到另外一个分支的常见错误。Hack添加了一条规则来捕获这种错误。下面将展示一个案例,从一个case分支越界到另外一个分支将会引发一个错误,除非第一个分支是空的:

    switch ($day) {
      case 'sun':
        echo 'Sunday'; // 错误
      case 'sat':
        echo 'Weekend';
        break;
      default:
        echo 'Weekday'; 
    }
    switch ($day) {
      case 'sun': // 正确:这条语句越界了,但它是空的。
      case 'sat':
        echo 'Weekend';
        break;
      default:
        echo 'Weekday'; 
    }

    如果这个越界是故意的,那么请放置注释内容“ // FALLTHROUGH ”到要穿越分支的最后一行。

    switch ($day) {
      case 'sun':
        echo 'Sunday';
        // FALLTHROUGH
      case 'sat':
        echo 'Weekend';
        break;
      default:
        echo 'Weekday'; 
    }

    这对编程人员提出了一些行动上的要求,只有这样才能更好地降低由于疏忽导致的越界可能性。

    展开全文
  • 一次机缘巧合,idea中调试代码的时候,跳到了.class文件中,刚好调试的代码是switch,于是就有了下面的内容:对于Java语言来说,Java 7之前,switch语句中的条件表达式的类型只能是与整数类型兼容的类型,包括...

    一次机缘巧合,在idea中调试代码的时候,跳到了.class文件中,刚好调试的代码是switch,于是就有了下面的内容:


    对于Java语言来说,在Java 7之前,

    switch语句中的条件表达式的类型只能是与整数类型兼容的类型,包括基本类型char、byte、short和int,与这些基本类型对应的封装类Character、Byte、Short和Integer,

    还有枚举类型。这样的限制降低了语言的灵活性,使开发人员在需要根据其他类型的表达式来进行条件选择时,不得不增加额外的代码来绕过这个限制。为此,Java 7放宽

    了这个限制,额外增加了一种可以在switch语句中使用的表达式类型,那就是很常见的字符串,即String类型。


    源代码:

    1. public class TestSwitch {  
    2.     public static void main(String[] args) {  
    3.         test("a");  
    4.     }  
    5.   
    6.     public static void test(String type) {  
    7.         switch (type) {  
    8.         case "a":  
    9.             System.out.println("aa");  
    10.             break;  
    11.         case "b":  
    12.             System.out.println("bb");  
    13.   
    14.             break;  
    15.         }  
    16.     }  
    17.   
    18. }  
    1. public class TestSwitch {  
    2.     public static void main(String[] args) {  
    3.         test("a");  
    4.     }  
    5.   
    6.     public static void test(String type) {  
    7.         switch (type) {  
    8.         case "a":  
    9.             System.out.println("aa");  
    10.             break;  
    11.         case "b":  
    12.             System.out.println("bb");  
    13.   
    14.             break;  
    15.         }  
    16.     }  
    17.   
    18. }  


    编译后的.class文件:

    1. import java.io.PrintStream;  
    2.   
    3. public class TestSwitch  
    4. {  
    5.   
    6.     public TestSwitch()  
    7.     {  
    8.     }  
    9.   
    10.     public static void main(String args[])  
    11.     {  
    12.         test("a");  
    13.     }  
    14.   
    15.     public static void test(String type)  
    16.     {  
    17.         String s;  
    18.         switch((s = type).hashCode())  
    19.         {  
    20.         default:  
    21.             break;  
    22.   
    23.         case 97// 'a'  
    24.             if(s.equals("a"))  
    25.                 System.out.println("aa");  
    26.             break;  
    27.   
    28.         case 98// 'b'  
    29.             if(s.equals("b"))  
    30.                 System.out.println("bb");  
    31.             break;  
    32.         }  
    33.     }  
    34. }  


    从代码可以看出,java虚拟机实际上是将字符串转化为哈希值,还是利用整数类型兼容的类型来进行判断,但是哈希值可能存在值相等的情况,所以又对字符串进行了2次比较。

    总结:switch能判断字符串是因为将字符串做了哈希运算,本质上还是数字,java虚拟机没有变化,只是编译器发生了变化。


     不过值得一提的是,通过这件事,给我们提供了一种新的思路,通过查看编译后的java文件,来探究底层实现方法。

       

    展开全文
  • <p><strong>Fatal error: 'goto' into loop or switch statement is disallowed in</strong></p> <p>any suggestions how to get the checkboxes for each division for the 1st three fields. <p>with the loop ...
  • 本人是新手,刚学习JAVA,在一次简单编程中想知道是否可以在switch语句中嵌套if语句。 以下是一个简单的公交站点查询小程序,我的想法是先输入自己的起始地和目的地,然后程序自动给出经过的站点,在编程中遇见了...
  • void fun1() { char Variable; Variable = xx; switch (Variable) { case Value1: 代码1; break;//跳出switch循环:即直接跳到代码5 case Value2: 代码2; continue;//跳出本次switch循环
  • 1.出现问题: xception in thread "main" java.lang.Error: 无法解析的...switch (command) { case 'Buy': quantity += 5; balance -= 20; break; case 'SELL': quantity -= 5; ...
  • <p>I've always wondered this - why can't you declare variables after a case label in a switch statement? In C++ you can declare variables pretty much anywhere (and declaring them close to first use is...
  • Switch语句中的enum

    2019-01-31 10:01:19
    在Switch语句中使用enum,枚举实例具备整数值的次序,还可以用ordinal方法取得次序 实例: package xfj; enum Signal {green, yellow,red, } public class TrafficLight { Signal color = Signal.green; ...
  • switch 语句中漏写 break

    2020-12-22 08:49:21
    switch 语句中漏写 break, 可能会使你的输出你意料之外,下面我来和你们仔细讲解 break 的作用: 下 面的代码是正确示范,结果将是只会输出:这里是a。 倘若你忘敲了 case ‘a’,case ‘b’,case ‘c’ 后的 ...
  • c++语句switch语句The error: case label not within a switch statement occurs in C language with switch case statement, when switch (variable/value) statement is terminated by the semicolon (;...
  • 关于switch语句中省略break语句的问题

    千次阅读 2015-11-27 20:58:55
    在switch语句中省略了break语句,那么匹配的case值以及以后的所有情况(包括default)都会被执行,除非遇到break或者结束为止。 此外,应该了解 switch(c)中的c可以使int、long、char、unsigned int等,但是唯独不能...
  • switch语句中使用break???

    千次阅读 2017-05-25 17:20:28
    break是跳出循环使用的。而在switch语句中使用switch语句是结束switch语句。比如:switch(x){ case 1: System.out.println("这是一楼"); break; case 2: System.out.println("这是二楼"); bre
  • java中switch语句 If your Java program needs to make a choice between two or three actions, an if, then, else statement will suffice. However, the if, then, else statement begins to feel cumbersome ...
  • 循环和switch语句中的continue、break

    千次阅读 2019-05-18 17:24:07
    1.在switch语句中,“case 常量表达式”只相当于一个语句标号, 表达式的值和某标号相等则转向该标号执行,但不能在执行完该标号的语句后自动跳出整个switch 语句,所以会出现继续执行所有后面case语句的情况。...
  • 除了if ... else之外,JavaScript还有一个称为switch语句的功能。 switch是一种条件语句,它将针对多种可能的情况... 最后,我们将介绍如何在switch语句中使用多个case。 Switch switch语句计算表达式并作为匹配大小
  • 一、default关键字 switch语句中的使用 首先看一个例子: public class DefaultTest { public static void main(String[] args) { int a = 4; switch (a){ case 0: System.out.println("value is 0"); break...
  • 其他编程语言(例如JavaScript)采用switch语句,...Switch语句在Python不存在;但是,有一些方法可以模拟其行为。这是这样做的两种方法。.get()使用字典函数此方法利用Python的字典数据类型来获得类似的结果...
  • switch语句编写程序 介绍 (Introduction) Conditional statements give programmers the ability to direct their programs to take some action if a condition is true and another action if the condition is ...
  • switch语句反汇编

    2020-07-26 22:43:49
    switch语句反汇编一、switch语句1、在正向编码时,switch语句可以看做是if语句的简写2、break在switch语句中十分重要二、switch语句的反汇编1、当switch存在3个分支时2、当switch存在4个分支及以上且连续时3、当...
  • 大话switch语句

    2019-04-09 08:57:44
    很多小伙伴在switch语句中可能存在一些疑问,那就是 首先,我们来介绍一下switch语句的格式 switch(表达式){ case 值1: 语句; break; case 值2: 语句; break; ... default: 语句; break; } ,上面...
  • switch语句随笔

    2020-11-24 19:58:49
    在switch语句中,我们没法直接实现分支,搭配break才能实现正的分支 #include<stdio.h> int main()//一条龙执行下去 { int day = 0; scanf_s("%day",&day); switch (day) { case 1: printf("星期一\n"); ...
  • 在switch语句中,“case 常量表达式”只相当于一个语句标号, 表达式的值和某标号相等则转向该标号执行,但不能在执行完该标号的语句后自动跳出整个switch 语句,所以出现了继续执行所有后面case语句的情况。
  • 今天写老师布置的题时,发现我switch语句下的scanf无法运行 后来试了getch()才能运行。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,331
精华内容 2,932
关键字:

在switch语句中