大家!我是Golang的新手,遇到了问题。 我有一些这样的代码(仅作为示例):
fmt.Println("yes or no:")
if _, err := fmt.Scan(&str); err != nil {
panic(err)
}
if str == "no" {
fmt.Println("You have to enter yes.")
//What do I need to write this?
}
我不会在用户输入正确的数据或终止过程之前再次显示“是或否”问题。
答案 0 :(得分:2)
您可以使用while循环(在Go中为for)连续循环,直到获得所需的输入为止。
var keepRepeating = true
scanner := bufio.NewScanner(os.Stdin)
for keepRepeating {
fmt.Println("Enter y/n")
scanner.Scan()
if scanner.Text() == "y" {
keepRepeating = false
}
if scanner.Text() == "n" {
keepRepeating = false
}
}
答案 1 :(得分:1)
谢谢大家!我是这样做的:
for {
fmt.Println("yes or no:")
if _, err := fmt.Scan(&str); err != nil {
panic(err)
}
if str == "no" {
fmt.Println("enter again")
} else {
break
}
}