package main func f1(i int) bool { switch j := i; j { case 3: fallthrough case 1: return true case 2: return false default: return false case 4: return true } } func f2(i int) int { switch { case i < 0: return -1 case i > 0: return 1 default: return 0 case i != 0: return 1000 } panic(0) } func f3(i int) int { lab: switch i { case 1: break case 2: return 2 case 3, 4: switch i { case 3: break lab case 4: break } return 4 } return 1 } func main() { if !f1(1) { panic(1); } if f1(2) { panic(2); } if !f1(3) { panic(3); } if !f1(4) { panic(4); } if f1(5) { panic(5); } if f2(-100) != -1 { panic(6); } if f2(1000) != 1 { panic(7); } if f2(0) != 0 { panic(8); } if f3(1) != 1 || f3(2) != 2 || f3(3) != 1 || f3(4) != 4 { panic(9); } }