如何在PowerShell中用循环输出字符'o'组成的钻石图案?
PowerShell 实现对称钻石图案解决方案
你的代码问题在于循环次数、空格数和字符数量的逻辑没匹配钻石的对称结构,以下是修正后的代码:
# 打印钻石上半部分(从1个o到19个o,共10行) for ($i = 0; $i -lt 10; $i++) { # 计算每行前的空格数:从9个递减到0个 $spaces = " " * (9 - $i) # 计算每行的o数量:1,3,5...19(每次加2) $os = "o" * (1 + 2 * $i) Write-Host $spaces$os } # 打印钻石下半部分(从17个o到1个o,共9行) for ($i = 8; $i -ge 0; $i--) { $spaces = " " * (9 - $i) $os = "o" * (1 + 2 * $i) Write-Host $spaces$os }
代码说明:
- 钻石上半部分循环10次,从
$i=0到$i=9:- 空格数随
$i增大递减,确保每行图案居中 - o的数量按奇数递增,符合钻石从窄到宽的规律
- 空格数随
- 下半部分循环9次,从
$i=8到$i=0:- 复用了上半部分的空格和o数量计算逻辑,反向循环实现从宽到窄的对称效果
内容的提问来源于stack exchange,提问作者Ezze
相关产品推荐
相关产品推荐

