我的一个朋友正在用Javascript教授一门编程课,他的任务之一是创建一个猜谜游戏。这是他的示例实现:Javascript中的break关键字仅仅意味着打破循环?
funProgram: for(;;) {
numberGuesser: {
var num = (Math.random() * 100) | 0;
var guess = +prompt("I'm thinking of a number between 0 and 100. Try to guess it.", 0);
var guesses = 1;
guess: for(;;) {
higher: {
lower: {
if(guess === num) break guess;
if(guess > num) break lower;
guess = +prompt("Too low. Try again.", 0);
break higher;
}
guess = +prompt("Too high. Try again.", 0);
}
guesses++;
}
alert("You got it in " + guesses + " guesses! The number is " + num);
}
var again = prompt("Do you want to guess again (y/n)?", "y") === "y";
if(!again) break funProgram;
}
他告诉我,这是标记代码和环绕它的块,所以你可以很容易地看到每个部分做一个很好的做法。他还表示标记休息和继续阅读比无标签阅读更容易,因为你可以确切地知道你正在脱离什么。我从来没有见过这样的代码模式,所以我不确定这是否属实。
我一直在使用Javascript一段时间,这里有一些我从未见过的东西,有些东西我仍然不明白。我认为break
关键字专门用于突破循环。 higher
和lower
块不是循环,但显然你仍然可以摆脱它。这怎么可能?打破不循环的东西似乎很奇怪。您是否也可以使用关键字break
突破功能?
+1。我会成为......“他”的对面栅栏上的一员。我会说标签所有的“标准”休息会使代码*不那么可读,因为缺乏标签的“日常使用”使得它突出显示为“这与标准的”break“不同”,这意味着我'我们会花时间确保这个“休息”的确的确如同没有标签一样工作。 – JimmiTh 2012-02-08 20:29:58