【go语言】猜数字游戏

目录

一、完整代码

二、用fmt.Scanf 来简化代码实现

三、运行结果


一、完整代码

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('\n') //读取一行输入
			if err != nil {
				fmt.Println("An error occured while reading input. Please try again", err)
			//	return
						continue
			}
			input = strings.TrimSuffix(input, "\r\n") //多了一个换行符,去掉换行符

			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//猜对即退出
			}
	}
}

 

三、运行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值