多分支语句switch在存在多个条件判断时使用,代码的可读性上要比连续不断的else if语句更好。Go中的switch与java php还是有区别的。java php使用break语句来中断switch的执行,且都是如下这种方式:
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;
}
Go中的switch则有如下两种写法:
方式一:switch后不带变量,逻辑在case语句中进行处理,相当于多个纯粹的else if 语句 switch{ case expression1: operation1 case expression2: operation2 case expression3: operation3 default: operationdefault } 方式2:与java和php的处理类似,但是每个case可以包含多个值,这在java和php中是不允许的。 switch var1{ case label1,label11: operation1 case label2: operation2 case label3: operation3 default: operationdefault }
示例:
方式一: c := 6 switch { case c < 7: fmt.Println("7") case c < 8: fmt.Println("8") default: fmt.Println("default") } 方式二: day := 4 switch day { case 1, 2, 3: fmt.Println("1") case 4: fmt.Println("4") case 5: fmt.Println("5") }