swift - 使用 while 函数快速掷骰子并打印结果,直到结果为 1

标签 swift random while-loop

我是 Swift 的新手,我有一个任务要求我创建一个 while 循环来模拟重复掷 6 面骰子直到掷出 1。每次滚动后,打印值。

在过去 2 小时内我尝试的几乎每一次迭代中,我都以无限循环结束,这会导致 Xcode 爆炸。

任何帮助都会很棒!

var dieRoll = Int.random(in: 1...6)

while dieRoll <= 6 {
    print (dieRoll)
    if dieRoll == 1 {
        print ("You win!")
    }
}

到此为止,它不再无休止地运行,但它的行为很奇怪并返回值 1 而没有打印“你赢了!”

func dieRoll(x: Int) -> Int {
    return Int.random(in:1...6)
}

while dieRoll(x: 0) > 1 {
    print(dieRoll(x: 0))
    if dieRoll(x: 1) == 1 {
        print("You win!")
    }
    else {
        RETURN
    }
}

最佳答案

您的 dieRoll 变量被声明为一个变量,但您永远不会更改它!尝试在 While 循环中“重新滚动”

此外,6 总是有可能永远不会掷出……如果你想搞乱“真实”概率,我知道,但如果你发现问题,你可能想制定一个“最大掷出次数”。 . 就我个人而言,我不会,但嘿,你永远不知道

TDLR:while 循环的最后一行应该重新滚动你的 dieRoll var

关于swift - 使用 while 函数快速掷骰子并打印结果,直到结果为 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58160118/

相关文章:

java - While-Loop 完成问题和最终值计算

php - 为什么总是使用 while 循环来获取 mysql 结果?

php - 从 MySQL 表返回每个唯一用户以及每个用户的行数

ios - 在 Swift Playground 中使用 AVPlayer 播放视频?

ios - Swift uitableview json删除行

algorithm - 在有向图中寻找哈密尔顿路径的随机算法

Sass中数组的随机颜色

ios - 检查 NSMutableArray 是否包含给定值

ios - 将2个数组组合成字典

php - 从没有主键的 MySQL 表中获取随机行 - 优化