试图使循环退出,但它目前只是继续循环100次

时间:2016-04-25 15:07:44

标签: javascript loops

当生命骰子滚动到0时,当字符上的100次点击循环退出循环时,我试图这样做。当前它是如何被循环100次。我不太确定如何解决这个问题,任何提示都会有所帮助。我的代码如下。

(foo@localhost)1> RemotePid = rpc:call(bar@localhost, erlang, whereis, [foo]).
<6928.32.0>
(foo@localhost)2> node(RemotePid).
bar@localhost

2 个答案:

答案 0 :(得分:2)

你需要有一种在对象之外进行通信的方法,即对象内部发生的事情。

例如,当函数中发生某些事情时,例如lifes()或hits(),您应该为对象上的变量赋值以保留状态。这样你就可以从for循环中访问状态。

示例:

this.isAlive = true; // starting condition

this.lifes = function() {
    var life = Math.floor(Math.random() * (3 - 0 + 1)) + 0;
    this.isAlive = (life > 0);
    if (this.alive) {
        document.write('you survived');
    } else {
        document.write('you died');
    }

现在在for循环中,您可以访问isAlive:

// loop until 100 attempts or you die, which ever comes first
for (i = 1; i < 101 && myChar.isAlive; i++) {
    myChar.hits(myChar.allHits)
    myChar.lifes(myChar.lifes)
}

答案 1 :(得分:0)

总的来说,你可以打破foor循环,以及阻止进一步执行foor循环并继续下一次迭代:

sentence = raw_int ("   ")
length = len(sentence) # determines the length of the sentence (how many characters there are)
index = length - 1 #subtracts one from the length because we will be using indexes which start at zero rather than 1 like len

while... #while the index is greater than or equal to zero continue the loop
letter = sentence[index] #take the number from the index in the sentence and assigns it to the variable letter

这将基本上打印:0,1,2,3,5,6,7 (你可以看到它有点跳过4)
(它也可以在while / do while循环中工作)

所以在你的情况下你可以检查你的一个函数的返回值是真还是假,或者做一些其他类型的条件检查以便摆脱循环。

或类似于Rob Brander在他的回答中写道:

for (var i = 0; i < 10; i++) {
    if (i == 4) continue;
    if (i == 8) break;
    console.log(i);
}