Go - 区分用户输入的数字和其他所有内容

时间:2017-07-29 02:06:40

标签: go

如果输入的数字低于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 !!!")
}

1 个答案:

答案 0 :(得分:0)

eugenioy和Chrono Kitsune是正确的 为了澄清他们在代码中所说的内容,这里有一个例子:

var people string
var err error
var number int
for {
    fmt.Scanf("%s",&people)
    number, err = strconv.Atoi(people)
    if err == nil {
        break
    }
    fmt.Println("Not a number, please try again")
}
fmt.Println(number)