function Star(n){for (var i = 1 ; i <= n ; i++) {var text = "";//左边的空格for (var j = 1 ; j < n ; j++) {text += "a";}//出现几个星星//左边的星星for (var j = 1 ; ((j < 2) && (j <= n) ) ; j++) {text += " *";}//上边的空格for (var j = 0 ; j < (2 * n - 3) ; j++) {text += "a";}//右边的星星是否出现for (var j = 1 ; ( j < 2 && n >= 2) ; j++) {text += " *";}console.log(text);}}Star(5);
2 回答
四季花海
TA贡献1811条经验 获得超5个赞
你误会了 很明显控制台里输出了5次。前面不是有个5的标记么。 只不过每次输出的都是一样的内容,为了方便,调试器就这样显示了。
我们来看你的代码,第一个子循环完成后 你的text变量里就是 n-1个a,
第二个子循环的条件是j<2&&j<=n 很明显这个循环最多只能循环一次。 这个时候你的text就是n-1个a加一个*。
第3个循环的条件是j<2*n-3 那就是输出2*n-3个a
第4个循环跟第二个循环一样。
你的这个循环每次都是输入相同的字符串。这可能跟你的计划有点出入。
添加回答
举报
0/150
提交
取消