当生命骰子滚动到0时,当字符上的100次点击循环退出循环时,我试图这样做。当前它是如何被循环100次。我不太确定如何解决这个问题,任何提示都会有所帮助。我的代码如下。
(foo@localhost)1> RemotePid = rpc:call(bar@localhost, erlang, whereis, [foo]).
<6928.32.0>
(foo@localhost)2> node(RemotePid).
bar@localhost
答案 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);
}