Contents
10. Switch多条件判断¶
10.1. Python¶
#!/usr/bin/env python
# -*- coding:utf8 -*-
# auther; 18793
# Date:2020/4/21 13:50
# filename: sample1.py
def choice_input():
print("请输入您的选择数字【0退出】:")
choice = input()
return int(choice)
while True:
number = choice_input()
if number == 8:
print("Oxygen")
elif number == 1:
print("Hydrogen")
elif number == 2:
print("Helium")
elif number == 11:
print("Sodium")
elif number == 0:
break
else:
print("I have no idea what %d is" % number)
# Alternative solution
db = {
1: "Hydrogen",
2: "Helium",
8: "Oxygen",
11: "Sodium",
0: "q",
}
while True:
number = choice_input()
result = db.get(number, "I have no idea what %d is" % number)
if result == "q":
break
10.2. Go¶
package main
import (
"fmt"
"strconv"
)
func str2int(s string) int {
i, err := strconv.Atoi(s)
if err != nil {
panic("Not a number")
}
return i
}
func main() {
var number_string string
// 循环的标志
loop := true
for {
fmt.Print("请输入您选择的数字【0 退出】: ")
fmt.Scanln(&number_string)
number := str2int(number_string)
switch number {
case 8:
fmt.Println("Oxygen")
case 1:
fmt.Println("Hydrogen")
case 2:
fmt.Println("Helium")
case 11:
fmt.Println("Sodium")
case 0:
// 修改循环标志,让其退出循环
loop = false
default:
fmt.Printf("I have no idea what %d is\n", number)
}
if !loop {
break
}
}
}
package main
import (
"fmt"
"strconv"
)
func str2int(s string) int {
i, err := strconv.Atoi(s)
if err != nil {
panic("Not a number")
}
return i
}
func main() {
var number_string string
loop := true
// Alternative solution
for {
fmt.Print("请输入您选择的数字【0 退出】: ")
fmt.Scanln(&number_string)
db := map[int]string{
1: "Hydrogen",
2: "Helium",
8: "Oxygen",
11: "Sodium",
0: "q",
}
number := str2int(number_string)
if name, exists := db[number]; exists {
if name == "q" {
loop = false
} else {
fmt.Println(name)
}
} else {
fmt.Printf("I have no idea what %d is\n", number)
}
// 跳出循环
if !loop {
break
}
}
}