求助:PowerShell实现输入数字生成星号金字塔(初学者)
完善PowerShell金字塔绘制代码
没问题!我来帮你搞定这个金字塔绘制的问题~你之前的代码里,空格部分的循环逻辑有点小问题——每次都固定输出$x个空格,导致所有行的缩进都一样,所以看起来只有右侧的星号。只需要调整空格的数量,让它随着行数增加而递减,就能得到对称的完整金字塔啦。
完整代码
$x = [int](Read-Host "请输入一个数字") for($i=1; $i -le $x; $i++) { # 输出每行前面的空格,数量为总层数减去当前行数 for($k=1; $k -le $x - $i; $k++){ Write-Host -NoNewLine " " } # 输出每行的星号,数量为2*当前行数-1(保证奇数个,对称) for($j=1; $j -le 2 * $i - 1; $j++) { Write-Host -NoNewLine "*" } # 每行结束后换行 Write-Host }
代码说明
- 外层循环
for($i=1; $i -le $x; $i++):控制金字塔的总层数,从第1行到第$x行。 - 第一个内层循环:负责输出每行开头的空格,数量是
$x - $i——比如输入5时,第1行有5-1=4个空格,第2行有5-2=3个空格,以此类推,这样星号就能居中显示。 - 第二个内层循环:输出每行的星号,数量是
2*$i -1,这样第1行1个星号,第2行3个,直到第5行9个,正好形成对称的金字塔形状。 - 最后一行
Write-Host:用来换行,因为前面的Write-Host -NoNewLine不会自动换行,需要手动添加换行让每行星号单独占一行。
测试效果(输入5时)
运行代码后输入5,会输出:
*
内容的提问来源于stack exchange,提问作者Novice
相关产品推荐
相关产品推荐

