js中console.log在function中的for里,设置函数运行次数后只执行最后一个结果是什么情况代码如下
functionStar(n){for(vari=1;i<=n;i++){vartext="";//左边的空格for(varj=1;j<n;j++){text+="a";...
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); 展开
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个回答
展开全部
你误会了 很明显控制台里输出了5次。前面不是有个5的标记么。 只不过每次输出的都是一样的内容,为了方便,调试器就这样显示了。
我们来看你的代码,第一个子循环完成后 你的text变量里就是 n-1个a,
第二个子循环的条件是j<2&&j<=n 很明显这个循环最多只能循环一次。 这个时候你的text就是n-1个a加一个*。
第3个循环的条件是j<2*n-3 那就是输出2*n-3个a
第4个循环跟第二个循环一样。
你的这个循环每次都是输入相同的字符串。。这可能跟你的计划有点出入。
我们来看你的代码,第一个子循环完成后 你的text变量里就是 n-1个a,
第二个子循环的条件是j<2&&j<=n 很明显这个循环最多只能循环一次。 这个时候你的text就是n-1个a加一个*。
第3个循环的条件是j<2*n-3 那就是输出2*n-3个a
第4个循环跟第二个循环一样。
你的这个循环每次都是输入相同的字符串。。这可能跟你的计划有点出入。
追问
确实是这样的 那怎样修改才能让函数是5的时候输出1到5的结果呢
追答
你是想要个怎么样的结果呢?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询