swift - 尝试使用 while 循环在 Swift 中制作星号三角形
问题描述
我正在尝试在 Swift 中输出棕褐色星号三角形。我必须使用 while 循环。
我试过自己做一个while循环——不走运,我想我需要用for循环嵌套一个while循环,但我什至不确定我能做到这一点。或者我可能会让这种方式变得比它需要的更难:)。编程的超级新手......我根本不知道如何在 while 循环中添加“*”。下面是我尝试过的最新代码,但它是错误的(显然)任何帮助将不胜感激
let rows = 5
for i in 1...rows{
for j in 1...i{
print("\(j) ", terminator: "")
}
var num_stars = 1
while num_stars <= 5{
print(num_stars)
num_stars += 1
}
print("")
}
解决方案
简单地 :
let rows = 5
var i = 1
while i <= rows {
print(String(repeating: "*", count: i))
i += 1
}
输出:
* ** *** **** *****
这对我来说看起来更漂亮:
let rows = 5
var i = 0
while i < rows {
let spaces = String(repeating: " ", count: rows - i - 1)
let stars = String(repeating: "*", count: 2 * i + 1)
print(spaces + stars)
i += 1
}
* *** ***** ******* *********
或者 :
while i < rows {
let spaces = String(repeating: " ", count: rows - i - 1)
print(spaces, terminator: "")
if i > 0 {
print("*", terminator: "")
if i < rows - 1 {
let insideTriangleSpaces = String(repeating: " ", count: 2 * (i - 1) + 1)
print(insideTriangleSpaces, terminator: "")
} else {
let insideTriangleStars = String(repeating: "*", count: 2 * (i - 1) + 1)
print(insideTriangleStars, terminator: "")
}
}
print("*")
i += 1
}
* * * * * * * *********
推荐阅读
- javascript - 获取另一个角色时如何删除角色(discord.js)
- python - Matlotlib:如何将 subplot-number 传递给 floating_axes.FloatingSubplot 方法?
- java - 更新 ArrayList 适配器
- azure - 如何在 azure 中从虚拟机 ping 负载均衡器 IP 地址
- python - 如何使用 python 库 pyjq 将字符串转换为 int?
- php - 避免专门针对特定产品的 WooCommerce 新订单通知
- python - (django) 根据用户的兴趣显示帖子
- php - symfony - 在 form->handleRequest 处注销
- r - 基于列表对象的子集数据框
- html - Manifest.json 在 html 中的重要性