阿里云部署多个网站,网站建设有什么价值,wordpress不好,做网站服务器哪个好Java 中 switch 的用法
1、switch 中的表达式的数据的数据类型为 byte, short, int, char, String#xff08;jdk 1.7支持 String 类型#xff09; 2、default 可以放在任意一行#xff0c;但是不管放在那一行#xff0c;都会先找第一个case去匹配#xff0c;如果所…Java 中 switch 的用法
1、switch 中的表达式的数据的数据类型为 byte, short, int, char, Stringjdk 1.7支持 String 类型 2、default 可以放在任意一行但是不管放在那一行都会先找第一个case去匹配如果所有的 case 都不匹配才会执行 defaultdefault 可以省略不写。 3、break 可以不写就容易造成 switch 的穿透现象如果匹配过一次或者执行过 default 之后都不会再进行二次匹配了但是语句体内容该执行还是会执行。
JDK 12 对 switch 进行扩展使其可以用作语句或表达式。
一、Java 中 switch 的语法
1、冒号()有直通行为
标准方式使用 break 防止 case 代码执行穿透。2、 箭头(-)无直通行为
使用 switch 标准方式编写代码太多的 break 造成代码冗余可读性不高 可以借助函数式接口和 lambda 表达式简化书写。3、break
break 防止 case 代码执行穿透4、yield 返回值
二、switch 语句
1、标准方式有直通行为
switch(seasonName){case Spring:System.out.println(spring time);case Summer,Winter:numLetters 6;break;case Fall:numLetters 4;break;default:numLetters -1;
}2、lambda 表达式书写无直通行为
switch(seasonName){case Spring - {System.out.println(spring time);numLetters 6;}case Summer,Winter - numLetters 6;case Fall - numLetters 4;default - numLetters -1;
}三、switch 表达式
public class Test {enum Alpha {A, B, C, D, E;}public static void main(String[] args) {System.out.print(fun(Alpha.A));}static char fun(Alpha alpha) {var r switch (alpha) {case A - a;case B - b;case C - c;case D - d;default - x;};return r;}
}1、有直通行为Java 14引入 String seasonName Spring;int numLetters;numLetters switch(seasonName){case Spring:System.out.println(spring time);case Summer,Winter:yield 6;case Fall:yield 4;default:yield -1;};System.out.println(numLetters);2、无直通行为
int numLetters;
numLetters switch(seasonName){case Spring -{System.out.println(spring time);yield 6;}case Summer,Winter - 6;case Fall - 4;default - -1;
};注意
switch() 括号内 seasonName应与 case 后常量类型保持一致或者是可以自动转换成可以互相比较的类型。case 标签类型为 char、byte、short 或 int 的常量表达式枚举常量 enum字符串字面量 String多个字符串用逗号分隔。case 子句中的值必须是常量不能是变量。在语句中default 是可选的。break 和 yield 语句用来在执行完一个 case 分支后使程序跳出 switch 语句如果没有 break 或 yield程序会顺序执行到 switch 结尾产生直通行为。不能在一个 switch 语句中混合使用冒号和箭头。与 break 语句类似yield 会终止执行。但与 break 不同的是yield 还会生成一个值这就是表达式的值。
四、Switch 语句与表达式的区别
switch 代码块出现在了赋值运算符的右侧一个 case 语句可以处理多个情景新的情景操作符“-”它是一个箭头标识符箭头标识符右侧的数值。这个数值代表的就是该匹配情景下switch 表达式的数值。需要注意的是箭头标识符右侧可以是表达式、代码块或者异常抛出语句而不能是其他的形式yield 语句产生的值看成是 switch 表达式的返回值。所以yield 只能用在 switch 表达式里。
Java 枚举(enum)
Java 枚举是一个特殊的类一般表示一组常量比如一年的 4 个季节一个年的 12 个月份一个星期的 7 天方向有东南西北等。
Java 枚举类使用 enum 关键字来定义各个常量使用逗号 (,) 来分割。
颜色的枚举类 enum Color{ RED, GREEN, BLUE; } 以上枚举类 Color 颜色常量有 RED, GREEN, BLUE分别表示红色绿色蓝色。
enum Color{ RED, GREEN, BLUE; }
public class Test { public static void main(String[] args){ Color c1 Color.RED; System.out.println(c1); }
}