Arrays “我有麻烦了。”;“无止境循环”;

Arrays “我有麻烦了。”;“无止境循环”;,arrays,swift,loops,Arrays,Swift,Loops,我是新来的。我的问题是,我有一个非常简单的代码,但每运行3次,我就会进入一个无休止的循环。什么是我的错 我以为最后一个循环会有问题。我已将最后一个循环的数量减少了1。所以选项增加了,但这次第二个循环进入了无止境循环 import UIKit var firstArray = [Int]() var column1 = [1,3,7] var column2 = [2,9,8] var column3 = [5,8,6] while firstArray.count != 3 { l

我是新来的。我的问题是,我有一个非常简单的代码,但每运行3次,我就会进入一个无休止的循环。什么是我的错

我以为最后一个循环会有问题。我已将最后一个循环的数量减少了1。所以选项增加了,但这次第二个循环进入了无止境循环

import UIKit

var firstArray = [Int]()
var column1 = [1,3,7]
var column2 = [2,9,8]
var column3 = [5,8,6]

while firstArray.count != 3
{
     let number = Int.random(in: 1 ..< 10)
    while !firstArray.contains(number) && !column1.contains(number)
    {firstArray.append(number)}
}
while firstArray.count != 6
{
    let number2 = Int.random(in: 1 ..< 10)
    while !firstArray.contains(number2) && !column2.contains(number2)
    { firstArray.append(number2)}
}
while firstArray.count != 9
{
    let number3 = Int.random(in: 1 ..< 10)
    if !firstArray.contains(number3) && !column3.contains(number3)
    { firstArray.append(number3)}
}


print(firstArray)
导入UIKit
var firstArray=[Int]()
var column1=[1,3,7]
var column2=[2,9,8]
var column3=[5,8,6]
而firstArray.count!=3.
{
设数=Int.random(in:1..<10)
而!firstArray.contains(数字)和&!column1.contains(数字)
{firstArray.append(number)}
}
而firstArray.count!=6.
{
设number2=Int.random(in:1..<10)
而!firstArray.contains(number2)和&!column2.contains(number2)
{firstArray.append(number2)}
}
而firstArray.count!=9
{
设number3=Int.random(in:1..<10)
如果!firstArray.contains(number3)和&!column3.contains(number3)
{firstArray.append(number3)}
}
打印(第一阵列)

当它没有进入无限循环时,它可以在1秒内给出结果。但这通常是一个无止境的循环。

那么多循环?您的具体要求是什么?这是因为firstArray一开始是空的?创建一个不同于给定列的新列,如数独逻辑。因此,第一个数组必须为空。这里的最终目标是什么?只是为了创建一个新的随机数独板使用所有数字从1-9?(顺便说一下,你在原来的板上有一个副本‘8’),是的,中间部分是3x3,应该从其他3x3板控制。
import UIKit

var firstArray = [Int]()
var column1 = [1,3,7]
var column2 = [2,9,8]
var column3 = [5,8,6]

while firstArray.count != 3
{
     let number = Int.random(in: 1 ..< 10)
    while !firstArray.contains(number) && !column1.contains(number)
    {firstArray.append(number)}
}
while firstArray.count != 6
{
    let number2 = Int.random(in: 1 ..< 10)
    while !firstArray.contains(number2) && !column2.contains(number2)
    { firstArray.append(number2)}
}
while firstArray.count != 9
{
    let number3 = Int.random(in: 1 ..< 10)
    if !firstArray.contains(number3) && !column3.contains(number3)
    { firstArray.append(number3)}
}


print(firstArray)