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); | |
} | |
} |