例子猜谜游戏里面的最终代码,使用 fmt.Scanf 来简化代码实现 | 青训营

130 阅读1分钟

稍微改了一下逻辑,系统先运算出数据,玩家给出数据,系统再给出答案

go中的scanf和printf方法和c语言有些相似

使用scanf和printf方法如果出现换行错误,请加上/n

读取玩家输入的数字,最后一定要加上换行符\n,否则循环会出现意外换行错误,Scanf传递的是地址,必须加上&

package main

import (
	"fmt"
	"math/rand"
	"time"
)

func main() {
	var PlayerNums int
	maxNUM := 100
	for {
		rand.Seed(time.Now().Unix())
		ScNUM := rand.Intn(maxNUM) //系统的随机数字
		fmt.Printf("请输入你猜测的数字\n")//加上换行符

		_, err := fmt.Scanf("%d\n", &PlayerNums) //读取玩家输入的数字,最后一定要加上换行符\n,否则循环会出现意外换行错误,Scanf传递的是地址,必须加上&
		if err != nil {
			fmt.Println(err)
			return
		}
		if ScNUM-PlayerNums > 0 {
			fmt.Println("你猜测的数字小了")
		} else if ScNUM == PlayerNums {
			fmt.Println("你猜测的数字和系统给出的一样!")
		} else {
			fmt.Println("你猜测的数字大了")
		}
		fmt.Printf("系统的结果是%d\n", ScNUM) //Printf传递是数值不用加&
	}
}