В моей программе CLI у меня есть эта функциональность, где пользователь может сказать мне, сколько предметов определенного продукта они хотят. Поэтому ожидается, что этот вход будет целым числом.
В настоящее время у меня возникла проблема, при которой, если они введут строку, она ошибочно произнесет ее expected an integer
, но затем напечатает вопрос снова несколько раз, а не один раз.
Пример:
How many Fruit Tea would you like to buy? qwe
expected integer
How many Fruit Tea would you like to buy? expected integer
How many Fruit Tea would you like to buy? expected integer
How many Fruit Tea would you like to buy?
Ниже приведен код, который обрабатывает эту функцию
for {
fmt.Printf("How many %v would you like to buy? ", product.Name)
_, err := fmt.Scan(&response)
if err != nil {
fmt.Println(err)
continue
}
if ok, err := validResponse(response); ok {
break
} else {
fmt.Println(err)
continue
}
}
Что я должен изменить в этом l oop, чтобы он повторял вопрос только один раз?