For-in循环动态闭合范围

时间:2014-10-17 06:54:08

标签: for-loop swift

动态近距离for-in循环的正确方法是什么?我在这部分for z in 1...[10-x]{

上收到了错误消息
for x in 1...10{

    for y in 1...x{
        print(" ")
    }

    for z in 1...[10-x]{
        print("*")
    }

    println()

}

错误:

Playground execution failed: <EXPR>:26:15: error: 'ClosedInterval<T>' does not have a member named 'Generator' for z in 1...[10-x]{

1 个答案:

答案 0 :(得分:2)

[10-x]表示数组(具有单个元素10-x)。你会想要“正常” 括号:

for z in 1 ... (10 - x) { ... }

或只是

for z in 1 ... 10 - x { ... }

因为...的优先级低于-

正如您所注意到的,这对x = 10不起作用,因为Swift中不允许使用end < start的范围。

要执行循环n次,最好将范围0 ..< n与省略上限值的范围运算符一起使用。这适用于n = 0

for x in 1 ... 10 {
    for y in 0 ..< x {
        print(" ")
    }
    for z in 0 ..< 10 - x {
        print("*")
    }
    println()
}
相关问题