【go语言】猜数字游戏
一、完整代码
package main import ( "bufio" "fmt" "math/rand" "os" "strconv" "strings" "time" ) func main() { maxNum := 100 rand.Seed(time.Now().UnixNano()) secretNumber := rand.Intn(maxNum) //fmt.Println("The secret number is", secretNumber) //fmt.Println("The secret number is", secretNumber) 注释掉,要不然用户就直接看到正确答案了 fmt.Println("Please input your guess") reader := bufio.NewReader(os.Stdin) //只读 for{ input, err := reader.ReadString( ) //读取一行输入 if err != nil { fmt.Println("An error occured while reading input. Please try again", err) // return continue } input = strings.TrimSuffix(input, " ") //多了一个换行符,去掉换行符 guess, err := strconv.Atoi(input) //转换成数字 if err != nil { fmt.Println("Invalid input.Please enter an integer value") //return //错误的话 退出进程 continue } fmt.Println("You guess is", guess) //逻辑判断 if guess > secretNumber { fmt.Println("Your guess is bigger than the secret number.please try again") } else if guess < secretNumber { fmt.Println("Your guess is smaller than the secret number.please try again") } else { fmt.Println("Correct, you Legend!") break//猜对即退出 } } }
二、用fmt.Scanf 来简化代码实现
package main import ( "fmt" "math/rand" "time" ) func main() { maxNum := 100 rand.Seed(time.Now().UnixNano()) secretNumber := rand.Intn(maxNum) fmt.Println("Please input your guess") for{ var guess int _, err := fmt.Scanf("%d", &guess) if err != nil { fmt.Println("Invalid input.Please enter an integer value") continue } fmt.Println("You guess is", guess) //逻辑判断 if guess > secretNumber { fmt.Println("Your guess is bigger than the secret number.please try again") } else if guess < secretNumber { fmt.Println("Your guess is smaller than the secret number.please try again") } else { fmt.Println("Correct, you Legend!") break//猜对即退出 } } }
三、运行结果
上一篇:
IDEA上Java项目控制台中文乱码