开关的常规用法是传递一个参数然后逐一跟案例对比;
switch (变量),{ ,,,case “价值”: ,,,,,,,//,代码… ,,,,,,,休息; ,,,, ,,,默认值: ,,,,,,,//,代码… ,,,,,,,休息; }
在分支比较多的时候,开关要比if else 如果好用,比如,
如果(“价值”){ ,,,//,代码… }else 如果(value2) { ,,,//,代码… }else 如果(value3) { ,,,//,代码… }else 如果(' value4 ', | |, value5) { ,,,//,代码… }
用开关来写的话就是这样的,可以传递真的,每个案例就相当于一个else 如果;
switch (“价值”),{ ,,,case “value1”: ,,,,,,,//,代码… ,,,,,,,休息; ,,,case “value2”: ,,,,,,,//,代码… ,,,,,,,休息; ,,,case “value3”: ,,,,,,,//,代码… ,,,,,,,休息; ,,,case “value4”: ,,,case “value5”: ,,,,,,,//,代码… ,,,,,,,休息; }
但是需要注意的是开关是松比较,也就是说如下这段代码每个案件都能满足;
switch (123), { ,,,case “字符串”: ,,,,,,,//,代码… ,,,,,,,休息; ,,,case “string2相等”: ,,,,,,,//,代码… ,,,,,,,休息; ,,,case “string3”: ,,,,,,,//,代码… ,,,,,,,休息; }
解决这个问题的办法就是在传参的时候转为字符串字符串型;
switch (strval (123)), { ,,,case “字符串”: ,,,,,,,//,代码… ,,,,,,,休息; ,,,case “string2相等”: ,,,,,,,//,代码… ,,,,,,,休息; ,,,case “string3”: ,,,,,,,//,代码… ,,,,,,,休息; }