【问题标题】:what's the use of .count command in repeat while loop?.count 命令在重复 while 循环中有什么用?
【发布时间】:2021-01-06 13:59:00
【问题描述】:

我最近开始学习 swift 作为我的第一门编程语言,有一个非常简单的术语我找不到答案。

看看这段代码:

var a = [Int]()
repeat {
    
    let randomNumbers = Int.random(in: 0...10)
    if a.contains(randomNumbers) == false {
        
        a.append(randomNumbers)
        
    }
    
    print(randomNumbers)
    
} while (a.count < 10)

所以这段代码应该将 0...10 的 10 个数字(不重复)添加到数组中,直到列出所有唯一整数。我不明白的是“while”在这里的作用。 最后一行不是意味着“生成的数字”的数量必须小于10吗?那么为什么每次我运行代码时我都会在控制台中得到超过 10 个数字(比如 30-40)? 同样根据代码,此代码不得产生欺骗。那为什么我会在控制台中打印 2,3 次一些数字?

【问题讨论】:

    标签: ios arrays swift


    【解决方案1】:

    你检查randomNumbers是否已经添加到数组a中,如果是,循环将再次执行,直到a.count &lt; 10

    如果将print 语句移动到if 语句中,它将被打印10 次。

    【讨论】:

    • 感谢您的反馈。当我在 if 语句中移动 print 语句时,它将被打印 10 次,但问题是:并非每个整数都被列出。换句话说,总是缺少一个数字。根据代码,它必须列出从 0..10 开始的所有整数
    • 0...10 表示包含0和10,一共有11个数字,所以需要将while条件修改为a.count &lt; 11
    • 天哪,你是救生员。在你解释之前我无法理解。谢谢你!
    • @OsamaBinLaden 请注意,无论随机数是否为重复数,您始终会打印 randomNumbers。因此,如果您使用更大范围的整数,它可能会打印 10 次以上。顺便说一句,只是洗牌 0...10 范围并删除最后一个数字会更容易let randomNumbers = (0...10).shuffled().dropLast()
    • 明白了! tnx@LeoDabus
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-28
    • 2014-04-29
    • 2016-09-07
    • 2017-12-17
    • 2017-12-07
    • 2017-10-07
    • 2019-02-02
    相关资源
    最近更新 更多