如何反转for循环?

时间:2013-11-11 10:41:01

标签: javascript html for-loop

我想将星星从(从最小到最大)反转到(从最大到最小)

  function seethestars1() {
        for (var i = 0; i <= 10; i++) {
            for (var j = 0; j < i; j++) {
                document.getElementById("emptytext2").value += "*";
            }
            document.getElementById("emptytext2").value += "\n";
        }
    }

 <textarea id="emptytext2" name="S2">

 <input id="emptytext3" type="button" value="Click for the stars" onclick ="seethestars1()" />

4 个答案:

答案 0 :(得分:5)

您可以像这样使用

for (var i = 10; i >= 0; i--) 

但是我不确定你为什么要这样做,因为你没有在你的循环中使用这个变量所以我认为它对输出没有任何影响,因为你循环运行10次。无论如何。 p>

如果我能猜到,那么我想你想按照数量的相反顺序打印星星。这意味着你想要在第一行中获得最大的星数,然后在第二行中获得-1,依此类推。如果是这样,那么你需要反转内部循环的顺序,只有这样

 function seethestars1() {
    var stars = document.getElementById("emptytext2");
    for (var i = 0; i <= 10; i++) {
        for (var j = 10; j > i; j--) {
            stars.value += "*";
        }                            
      stars.value += "\n";
    }
}

Js Fiddle Demo

答案 1 :(得分:0)

只需为seethestarts1方法尝试以下代码。

function seethestars1() {
        for (var i = 0; i <= 10; i++) {
            for (var j = i; j > 0; j--) {
                document.getElementById("emptytext2").value += "*";
            }
            document.getElementById("emptytext2").value += "\n";
        }
    }

答案 2 :(得分:0)

function seethestars2() {
        for (var i = 10; i > 0; i--) {
            for (var j = 0; j < i; j++) {
                document.getElementById("emptytext2").value += "*";
            }
            document.getElementById("emptytext2").value += "\n";
        }
    }

这里发生的事情很简单;而不是从1星开始,它从outer loop中的10颗星开始,具有计数器iinner loop和以前一样。

答案 3 :(得分:0)

以反向顺序放置一个for循环。请尝试以下方法:

function seethestars1() {
        for (var i = 0; i <= 10; i++) {
            for (var j = 10; j > i; j--) {
                document.getElementById("emptytext2").value += "*";
            }
            document.getElementById("emptytext2").value += "\n";
        }
}

以下是演示:http://jsfiddle.net/s5ztu/