0
我想讓代碼循環,如果輸入的數字低於600,並且如果輸入包含字母和符號則循環。我無法做到。轉到 - 區分用戶輸入的數字和其他一切
package main
import (
"fmt"
"strconv"
)
func main() {
fmt.Println("How far in metres are the people away from the spacecraft?")
var people string
fmt.Scanf("%s",&people)
number, _ := strconv.Atoi(people)
for number < 600 {
if (number < 0 || number > 0 || people == "0"){
fmt.Println("Too Close\nTry Again")
var people string
fmt.Scanf("%s",&people)
number, _ := strconv.Atoi(people)
fmt.Println(number)
}else{
fmt.Println("Only Number Please\nTry Again")
var people string
fmt.Scanf("%s",&people)
number, _ := strconv.Atoi(people)
fmt.Println(number)
}
}
fmt.Println("BLAST OFF !!!")
}
ATOI返回兩個值。第二個,你忽略了,是一個錯誤。你應該檢查這個錯誤是不是零,在這種情況下,它可能不是一個數字。 – eugenioy
eugenioy是正確的。一些其他語言有例外,如果您不處理它們,程序將停止工作。你需要確保你處理從Go中的函數/方法返回的錯誤,否則你的程序不會以你能理解的方式行事。 –