为了账号安全,请及时绑定邮箱和手机立即绑定

生成数字时代码进入无限循环

生成数字时代码进入无限循环

Go
慕婉清6462132 2021-04-02 18:13:11
我试图编写一些代码,该代码将生成七组七个七个唯一的,非重复的数字,范围从1到49。但是,当我运行代码时,它陷入了无限循环的无休止地生成单个数字的过程。仅当我在main()下包括一个小if-else循环时才发生这种情况,该循环的功能是检查重复的数字。重复检查背后的逻辑是否存在问题?package mainimport "fmt"import "math/rand"import "time"func main() {    var j [7]int    var n []int    rand.Seed(time.Now().UTC().UnixNano())    for m := 0; m < 7; m++ {        for i := 0; i < 8; i++ {            if i < 7 {                var duplicate int = randInt(1, 49)                n = append(n, duplicate)                if i != 0 {                    if !integerinarray(duplicate, n) {                        j[i] = duplicate                    } else {                        i--                    }                } else {                    j[i] = duplicate                }                fmt.Print(j[i], " ")            } else {                fmt.Println("\n")                //fmt.Println(n)            }        }    }}func randInt(min int, max int) int {    return min + rand.Intn(max-min)}func integerinarray(a int, s []int) bool {    for _, b := range s {        if b == a {            return true        }    }    return false}
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 321 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信