求助:JavaScript反向循环实现倒序星号图案的正确写法
解决倒序星号输出的问题
嘿,我来帮你搞定这个倒序星号的问题!首先咱们先揪出你写的反向循环为啥没工作——你的循环条件是i <= 0,但初始值i=5,第一次判断的时候5显然不满足“小于等于0”,所以循环体根本没执行,自然就没任何输出啦。
下面给你几种简单好用的解决方案,你可以选自己顺手的来用:
方法一:从最长星号串开始逐步缩短
先初始化一个有5个星号的字符串,然后每次循环打印当前字符串,再去掉最后一个星号,直到剩下0个为止:
var stars = "*****"; for (var i = 5; i > 0; i--) { console.log(stars); // 去掉最后一个字符 stars = stars.slice(0, -1); }
方法二:循环生成对应长度的星号串
从5开始往下数到1,每次循环根据当前的数字生成对应数量的星号,再打印出来:
for (var i = 5; i >= 1; i--) { var empty = ""; // 生成i个星号 for (var j = 0; j < i; j++) { empty += "*"; } console.log(empty); }
如果你的运行环境支持ES6语法,还可以用更简洁的repeat方法来生成星号串,代码会更清爽:
for (var i = 5; i >= 1; i--) { console.log("*".repeat(i)); }
这几种方法最终都能输出你想要的倒序星号:
***** **** *** ** *
内容的提问来源于stack exchange,提问作者Kamil Kowalczuk-Fijałkowski
相关产品推荐
相关产品推荐

