switch case用法(switch case用法举例default)
没有break,执行语句会穿透case;switch 支持哪些类型与JDK版本有关
我是Java程序猿#35岁码农# 面试初级Java程序猿的时候,我偶尔也会出个switch相关的问题。 比如,switch都支持那些数据类型,char,int,byte,short,long,String,枚举类等等。 当然,相信很多人也是回答不上来的。 在switch面试中,往往还会问,假如在case中,没有break,结果会如何? 很多人也会懵逼,case中还会不带break的么?如果不带,idea早就告知了。 但是,离开idea,咱还能不能知道呢? 而且在现实中,我也见过有同事没写break,然后最后还没发现bug的。 不管如何,知道其原理,还是有必要性的。 举例: public static void main(String[] args) { for (int i = 1; i <= 10; i++) { switch (i % 2) { case 0: System.out.println(i + “ is even number”); case 1: System.out.println(i + “ is odd number”); default: System.out.println(i + “ is no exist ”); } } } 简单的例子,抛开IDEA,你能知道结果么? 关注我,每天学一点,进步快一点。
C 语言烦恼:在 switch 语句中两次具有相同的 case 值是错误的。在不同的地方*两次具有相同的 case 值应该只是一个错误*. 打破一堆 switch (errno) 语句,其中例如 ENOTSUP 和 EOPNOTSUPP 是相同的值。
Python拥有一流的功能,他们可以用字典模拟switch/case语句
def dispatch_if(operator, x, y):
if operator == 'add':
return x + y
elif operator == 'sub':
return x - y
elif operator == 'mul':
return x * y
elif operator == 'div':
return x / y
else:
return None
def dispatch_dict(operator, x, y):
return {
'add': lambda: x + y,
'sub': lambda: x - y,
'mul': lambda: x * y,
'div': lambda: x / y,
}.get(operator, lambda: None)()
>>> dispatch_if('mul', 2, 8)
16
>>> dispatch_dict('mul', 2, 8)
16
#python#
CASETiFY x BLACKPINK 联乘系列





