在做一个练习的时候,需要在输入switch的key后,再针对不同的情况再次进行输入,如下:
fmt.Scanf("%d",&key)
switch key {
case 1:
...
case 2:
fmt.Scanf("%f",&income)
fmt.Printf("%.2f", income)
case 3:
fmt.Scanf("%f",&expenditure)
fmt.Printf("%.2f",expenditure)
case 4:
loop = false
default:
fmt.Println("do nothing")
}
如图,如果输入2后,控制台会直接输出默认值0,而不会接收输入。
解决方法是:使用scanln
如下:
fmt.Scanln(&key)
switch key {
case 1:
...
case 2:
fmt.Scanln(&income)
fmt.Printf("%.2f", income)
case 3:
fmt.Scanln(&expenditure)
fmt.Printf("%.2f",expenditure)
case 4:
loop = false
default:
fmt.Println("do nothing")
}
还可以使用scan
问题参考: