如果用户输入的数据不正确,应用程序必须重复提问

everyone! I'm newbie in Golang and I've a problem. I've some code like this (just example):

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?
}

I wont it shows the question "yes or no" again til an user enters correct data or terminate proccess.

You can use a while loop (for in Go) to continuously loop until you get an input you want.

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

Thanks, everyone! I did so:

for {
    fmt.Println("yes or no:")
    if _, err := fmt.Scan(&str); err != nil {
        panic(err)
    }
    if str == "no" {
        fmt.Println("enter again")
    } else {
        break
    }
}