当前位置: 首页 > news >正文

曲靖市建设局网站wordpress 注册 邮件

曲靖市建设局网站,wordpress 注册 邮件,学科网站建设,在线做原型的网站文章目录 程序介绍设置随机数读取用户输入实现判断逻辑实现游戏循环完整代码 程序介绍 首先生成一个介于1~100之间的随机数,然后提示玩家输入数字,并告诉玩家是猜对了还是猜错了,如果对了程序就结束,如果错了就提醒玩家是大了还是…

文章目录

      • 程序介绍
      • 设置随机数
      • 读取用户输入
      • 实现判断逻辑
      • 实现游戏循环
      • 完整代码

程序介绍

首先生成一个介于1~100之间的随机数,然后提示玩家输入数字,并告诉玩家是猜对了还是猜错了,如果对了程序就结束,如果错了就提醒玩家是大了还是小了,然后玩家继续输入。

设置随机数

maxNum := 100
rand.Seed(time.Now().UnixNano())  //修改随机数种子为当前时间戳
secretNumber := rand.Intn(maxNum)
  1. rand.Seed(seed int64):播种seed为随机数种子
  2. func time.Now() time.Time:获取当前时间
  3. func (time.Time).UnixNano() int64:将Time转成时间戳返回
  4. func rand.Intn(n int) int:设置一个随机数,随机数的范围为[0, n)

读取用户输入

这里用的是高并发输入,可以用简单的Scan进行输入。

fmt.Print("Guess a number between 1 and", maxNum, ": ")
reader := bufio.NewReader(os.Stdin)
input, err := reader.ReadString('\n')
if err != nil {fmt.Println("An error occurred while reading input. Try again", err)return
input = strings.TrimSuffix(input, "\r\n") //去掉input末尾的回车换行符guess, err := strconv.Atoi(input)         //将input转换为整数
if err != nil {fmt.Print("Invalid input. Try again: ")return
fmt.Print("Your guess is ", guess, ". ")
  1. func (b *Reader) ReadString(delim byte) (string, error)ReadString一直在Reader* b中读取,直到读到delimdelim也会被读进去

  2. reader := bufio.NewReader(os.Stdin):将reader与标准输入流Stdin关联

    func NewReader(rd io.Reader) *ReaderNewReader返回一个具有默认缓冲区大小新的Reader

  3. input, err := reader.ReadString('\n'):从reader中读取,遇到'\n'就停止,把包括'\n'在内的内容放到字符串input中,错误信息返回到err

    func (b *Reader) ReadString(delim byte) (string, error)ReadString读取直到输入中第一次出现分隔符delim,返回一个字符串,其中包含delim之前的数据并包括delim。如果ReadString在找到分隔符之前遇到错误,它将返回在错误之前读取的数据和错误本身(通常是io.EOF)。

  4. input = strings.TrimSuffix(input, "\n"):因为读入的时候把回车符\r和换行符\n也读进来了,所以这一步是去掉换行符。只保留input中换行符之前的内容,不包括换行符。当然也可以使用

    func TrimSuffix(s, suffix string) stringTrimSuffix返回s,不包含所提供的后缀字符串。如果s没有以后缀结尾,则返回不变的s

  5. guess, err := strconv.Atoi(input):将字符串input转成整型存给guess

    func Atoi(s string) (int, error)Atoi相当于转换为int类型的ParseInt(s, 10,0)

实现判断逻辑

if guess > secretNumber {fmt.Print("Too Big! Try again: ")
} else if guess < secretNumber {fmt.Print("Too Small! Try again: ")
} else {fmt.Println("You got it!")break
}

一个简单的if分支语句,没什么好说的。

实现游戏循环

fmt.Println("Guess a number between 1 and ", maxNum, ": ")
reader := bufio.NewReader(os.Stdin)
for {input, err := reader.ReadString('\n')if err != nil {fmt.Println("An error occurred while reading input. Try again", err)continue}input = strings.TrimSuffix(input, "\r\n") //去掉input末尾的回车换行符guess, err := strconv.Atoi(input)         //将input转换为整数if err != nil {fmt.Print("Invalid input. Try again: ")continue}fmt.Print("Your guess is ", guess, ". ")if guess > secretNumber {fmt.Print("Too Big! Try again: ")} else if guess < secretNumber {fmt.Print("Too Small! Try again: ")} else {fmt.Println("You got it!")break}
}
  1. 上面只完成了用户的一次猜测,用户输入往后的部分改成循环即可完成,猜对记得跳出循环。
  2. 当输入错误的时候不要直接返回了,可以改为continue继续循环

完整代码

package mainimport ("bufio""fmt""math/rand""os""strconv""strings""time"
)func main() {// 设置随机数maxNum := 100rand.Seed(time.Now().UnixNano()) //修改随机数种子为当前时间戳secretNumber := rand.Intn(maxNum)fmt.Print("Guess a number between 1 and ", maxNum, ": ")reader := bufio.NewReader(os.Stdin)for {input, err := reader.ReadString('\n')if err != nil {fmt.Println("An error occurred while reading input. Try again", err)continue}input = strings.Trim(input, "\r\n") //去掉input末尾的换行符guess, err := strconv.Atoi(input)   //将input转换为整数if err != nil {fmt.Print("Invalid input. Try again: ")continue}fmt.Print("Your guess is ", guess, ". ")if guess > secretNumber {fmt.Print("Too Big! Try again: ")} else if guess < secretNumber {fmt.Print("Too Small! Try again: ")} else {fmt.Println("You got it!")break}}
}
http://www.yayakq.cn/news/488086/

相关文章:

  • 江西中恒建设集团网站南昌网站建设公司好么
  • 有什么做旅游攻略的网站好设计托管网站建设
  • 品牌网站设计vellum wordpress
  • 台州网站排名优化最佳搜索引擎
  • 佳木斯万达建设网站wordpress优惠券采集
  • 设计师常去的素材网站网站后台生成html
  • 网站开发专业培训学校济南网站建设公司 推荐行知科技
  • 网站建设seo优化网站建设在学校中的作用
  • 外贸网站是怎么做的MIUI官方网站开发版
  • gta5买资产网站在建设个人建设什么网站好
  • 网站建设的摘要怎么写电子毕业设计网站建设
  • wordpress 站内链接毕业设计网页制作咖啡网站图片
  • 网站建设招标无锡部队网站建设建议
  • 虚拟电脑可以做网站吗展厅设计行业平台
  • 新媒体 网站建设 管理规范如何赋予网站建设以生命力
  • 常熟网站制作哪家好做网站哪个平台好一点
  • 深圳专业网站建设服务通常做网站要多久
  • 建设银行网站怎么看不见余额网站后台流程
  • 装饰公司网站模版怎么搭建自己的网站后台
  • 网站开发调研wordpress实现付费浏览
  • 个人做企业 网站WordPress如何添加备案
  • 国外做贸易网站深圳seo推广公司
  • 移动互联时代网站建设网页制作与设计实训目的怎么写
  • 网站建设创意数据查询网站
  • 中国空间站实时位置宁波网站建设i sp.net
  • 网站怎么做内链建筑网格图绘制
  • 乐清市网站建设公司在线购物商城的设计与实现
  • 郑州 制造 网站沈阳妇科检查
  • 如何做英文网站深圳网站开发平台
  • 多个wordpress站点互相shuwon-成都网站建设-成都网站制作-成都网络公司-蜀美网络