swift2 循环嵌套- Swift 2

qfe3c7zg  于 2022-11-06  发布在  Swift
关注(0)|答案(2)|浏览(167)

除了这本书,我没有任何编码经验
编程Swift!Swift 2 Kindle版由尼克·史密斯(作者)
我目前在Chapter
5.3嵌套FOR循环
//为循环#2嵌套
这个代码-

for var a = 0; a < 11; a++ {
    print("")

    for var b = 0; b < a; b++ {
        print("*", terminator: " ")

    }

}

GENERATES THIS PATTERN...
现在[几个/ 4小时后'奇数']我简直无法工作
我(想我)可以看到外循环和内循环,但我就是不能解决其余的问题!??我已经尝试了我能想到的每一种变化!??(我意识到,仅仅做“排列”并不意味着我对我正在尝试做的事情有真正的理解!...)
尝试使用--运算符并更改[大多数/所有]值[但“排列”是一种有限的方法]
我觉得自己像个傻瓜,但如果这是我第一次看到这些东西,也许还不算太糟糕,这些东西需要学习!??
帮助(答案LOL)将非常感谢😬😬😬

qgzx9mmu

qgzx9mmu1#

for var a = 10; a > 0; a-- { 

    for var b = 0; b < a; b++ {
        print("*", terminator: " ")

    }
    print()
}

印刷品


* * * * * * * * * * *
* * * * * * * * * *
* * * * * * * * *
* * * * * * * *
* * * * * * *
* * * * * *
* * * * *
* * * *
* * *
* *
* 

UPDATE为现今Swift语法,功能相同

for a in stride(from: 10, through: 0, by: -1) {
    for _ in stride(from: 0, to: a, by: 1) {
        print("*", terminator: " ")
    }
    print()
}
20jt8wwn

20jt8wwn2#

如何系统地做到这一点:例如,如果要获取user 3441734的输出:一共有11行,我们从0到10对行进行编号,所以我们有一个循环,它将line的值设置为0到10。

for var line = 0; line < 11; ++line

接下来,我们要在每行中打印什么?在第0行,我们要打印11 * 个字符。在第10行,我们要打印1个星星字符。星号的数量是11 - line。我如何得到表达式11 - line?星号的数量随着line的上升而下降,所以它必须是- line。当line = 0时,必须有11个星号。所以something - 0 = 11,something = 11。所以循环中的第一行:

let starcount = 11 - line

然后,我们要打印(星星计数)乘以一个星号和一个空格字符,然后开始一个新行。

for var star = 0; star < starcount; ++star {
    print ("*", terminator: " ")
}
print ("")

所有人一起:

for var line = 0; line < 11; ++line {
    let starcount = 11 - line
    for var star = 0; start < star count; ++star {
        print ("*", terminator: " ")
    }
    print ("")
}

我们对循环进行了一些简化:

for var line in 0 ..< 11 {
    let starcount = 11 - line
    for var star in 0 ..< starcount {
        print ("*", terminator: " ")
    }
    print ("")
}

如果你想要一个不同的模式,你所要做的就是改变数字11,如果线的数量是不同的,并改变starcount的计算。实际上,最好是有一个变量为行数,这样改变一个不同的模式就更容易了:

let linecount = 11
for var line in 0 ..< line count {
    let starcount = linecount - line
    for var star in 0 ..< starcount {
        print ("*", terminator: " ")
    }
    print ("")
}

相关问题