Da'sBlog

linux-while-do-case与js和python,php对比

case … esac 与其他语言中的 switch … case 语句类似,是一种多分枝选择结构。

1
2
3
4
while command
do
Statement(s) to be executed if command is true
done
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
case 值 in
模式1)
command1
command2
command3
;;
模式2)
command1
command2
command3
;;
*)
command1
command2
command3
;;
esac

js的switch

1
2
3
4
5
6
7
8
9
10
11
switch(n)
{
case 1:
执行代码块 1
break;
case 2:
执行代码块 2
break;
default:
n 与 case 1case 2 不同时执行的代码
}

php的switch

1
2
3
4
5
6
7
8
9
10
11
12
13
switch (expression)
{
case label1:
code to be executed if expression = label1;
break;
case label2:
code to be executed if expression = label2;
break;
default:
code to be executed
if expression is different
from both label1 and label2;
}

python的switch
python本身没有switch语句,解决方法有以下3种:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
A.使用dictionary
values = {
value1: do_some_stuff1,
value2: do_some_stuff2,
...
valueN: do_some_stuffN,
}
values.get(var, do_default_stuff)()
B.使用lambda
result = {
'a': lambda x: x * 5,
'b': lambda x: x + 7,
'c': lambda x: x - 2
}[value](x)
C.使用引用类
坚持原创技术分享,您的支持将鼓励我继续创作!