没有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++) {
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 联乘系列