js代码实现金字塔形*号5层排列
script>
var start = function (n) {
for (var i = 1; i <= n; i++) {
for (var j = 1; j <= n - i; j++) {
document.write(" ");
}
for (var j = 1; j <= i; j++) {
document.write("* ");
}
document.write("<br>");
}
}
start(5);
</script>代码解析
这段代码实现的是5层金字塔形排列。它通过三层嵌套逻辑来控制空格和星号的输出,逐行构建出一个居中对齐的三角形。
核心实现原理
start(5) 调用后,外层循环 i 从 1 到 5,控制总共输出 5 行。每一行内部,先执行第一个内层循环打印空格,再执行第二个内层循环打印星号。
空格控制:实现居中对齐
第一个内层循环 for (var j = 1; j <= n - i; j++) 负责在星号前输出空格。当 n=5 时:
第 1 行(i=1):
n-i=4,输出 4 个 第 2 行(i=2):
n-i=3,输出 3 个 第 3 行(i=3):
n-i=2,输出 2 个 第 4 行(i=4):
n-i=1,输出 1 个 第 5 行(i=5):
n-i=0,不输出空格
随着行数增加,空格数量递减,星号整体向右偏移量逐渐减小,形成居中的视觉效果。
星号控制:逐行递增
第二个内层循环 for (var j = 1; j <= i; j++) 负责输出星号,每行输出 i 个 * (星号后跟一个空格,让星号之间保持间距)。第 1 行 1 个,第 2 行 2 个,以此类推到第 5 行 5 个。
换行控制
每行空格和星号输出完毕后,document.write("<br>") 插入一个换行标签,使下一行内容另起一行显示。
最终效果
在浏览器中渲染后,你会看到这样的图案:
* * * * * * * * * * * * * * *
第 1 行前面有 4 个空格,星号居中;第 5 行前面没有空格,星号从最左侧开始。整体呈现出一个左对齐的直角三角形,但由于每行星号前空格递减,视觉上形成了金字塔般的对称效果。