[英]Why do we use breaks in JavaScript loops?
我知道“break”用於在滿足特定條件之前停止循環但我真的很困惑為什么在我們可以選擇使我們的標准更好時使用break。 例如,看看這段代碼:
var i = 0;
for (i = 0; i <= 10; i++) {
if (i == 3) {
break;
}
document.write("The number is " + i);
document.write("<br />");
}
我非常清楚這個break命令將終止循環,因為變量的值達到3但我的問題是為什么我們使用break而不是像i <= 3那樣使我們的條件。 有人可以用一些實際的例子說清楚嗎?
一個簡單的例子是循環遍歷數組中的對象,尋找滿足某個條件的對象。 當您找到該對象時,您無需檢查其余對象,因此請使用break
。
for (var i = 0; i < arr.length; i++) {
var e = arr[i];
if (someCondition(e)) {
break;
}
}
// use e
VS
for (var i = 0; !someCondition(arr[i]); i++);
var e = arr[i];
// use e
是的,你可以有一個更好的條件,但這意味着你的推送邏輯在for循環語句而不是正文。 這可能很快導致無法讀取的代碼。
break
和continue
更具可讀性
例如,當您在10個項目的數組中搜索某些內容時,您希望從0開始循環.9。但是,一旦找到結果,就無法進一步搜索,因此您可以break
並跳出循環。
在您的示例中,它是一個糟糕的循環條件。
但是在處理其他對象時會變得非常復雜。 看看我的例子。
var i = 0;
var myArrayOfObjects = ....
for (i = 0; i <= 10; i++) {
if (myArrayOfObject[i].someProperty == 3) {
break;
}
document.write("The number is " + i);
document.write("<br />");
}
我很確定這只是一段代碼,向您展示如何break
工作。 實際上你不會寫那樣的東西。
但是, break
有它的優點。 您可以隨時退出循環(不僅在循環條件如此說明時)
要添加到其他人所說的內容中,有時您只需要在某個事件被觸發時中斷。 代碼與此類似:
while(true)
{
//run application
if(event)
break;
}
//end application
在許多應用程序,特別是游戲的背景下有意義。
此外,有時您可能需要檢查循環中間的條件而不是開始時的條件,因此使用break不僅會使代碼更具可讀性,而且在某些情況下這是必不可少的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.