你可能會遇到這樣的情況,當一段代碼需要執(zhí)行多次時。在一般情況下,語句按照順序執(zhí)行:首先執(zhí)行函數中的第一個語句,然后執(zhí)行第二個語句,依此類推。
編程語言提供了各種控制結構,允許更復雜的執(zhí)行路徑。
循環(huán)語句可以讓我們多次執(zhí)行語句或語句組。下面給出的是大多數編程語言中循環(huán)語句的一般形式。
TypeScript提供了不同類型的循環(huán)來處理循環(huán)要求。下圖說明了循環(huán)的分類:
迭代次數是確定/固定的循環(huán)稱為確定循環(huán)。for循環(huán)是一個確定循環(huán)的實現。
序號 | 循環(huán)和說明 |
---|---|
1 | for循環(huán) for循環(huán)是一個確定循環(huán)的實現。 |
當循環(huán)中的迭代次數不確定或未知時,將使用不確定循環(huán)。
可以使用以下方式實現不確定循環(huán):
序號 | 循環(huán)和說明 |
---|---|
1 | while循環(huán) 每次指定的條件評估結果為true時,while循環(huán)都會執(zhí)行指令。 |
2 | do...while循環(huán) do ... while循環(huán)類似于while循環(huán),只是do ... while循環(huán)不會在第一次循環(huán)執(zhí)行時評估條件。 |
var n:number = 5 while(n > 5) { console.log("Entered while") } do { console.log("Entered do…while") } while(n>5)
該示例最初聲明了一個while循環(huán)。 僅當表達式傳遞給while時,才會輸入循環(huán),同時計算結果為true。在此示例中,n的值不大于零,因此表達式返回false并跳過循環(huán)。
另一方面,do ... while循環(huán)執(zhí)行一次語句。這是因為初始迭代不考慮Boolean表達式。但是,對于后續(xù)迭代,while檢查條件并將控件從循環(huán)中取出。
在編譯時,它會生成以下JavaScript代碼:
//Generated by typescript 1.8.10 var n = 5; while (n > 5) { console.log("Entered while"); } do { console.log("Entered do…while"); } while (n > 5);
上面的代碼將產生以下輸出:
Entered do…while
break語句用于將控件從結構中取出。在循環(huán)中使用break會導致程序退出循環(huán)。它的語法如下:
break
現在,看看下面的示例代碼:
var i:number = 1 while(i<=10) { if (i % 5 == 0) { console.log ("The first multiple of 5 between 1 and 10 is : "+i) break //exit the loop if the first multiple is found } i++ } //outputs 5 and exits the loop
在編譯時,它會生成以下JavaScript代碼:
//Generated by typescript 1.8.10 var i = 1; while (i <= 10) { if (i % 5 == 0) { console.log("The first multiple of 5 between 1 and 10 is : " + i); break; //exit the loop if the first multiple is found } i++; } //outputs 5 and exits the loop
它會產生以下的輸出:
The first multiple of 5 between 1 and 10 is : 5
continue語句跳過當前迭代中的后續(xù)語句,并將控件帶回循環(huán)的開頭。與break語句不同,continue不會退出循環(huán)。它終止當前迭代并開始后續(xù)迭代。
continue
下面給出了continue語句的一個例子:
var num:number = 0 var count:number = 0; for(num=0;num<=20;num++) { if (num % 2==0) { continue } count++ } console.log (" The count of odd values between 0 and 20 is: "+count) //outputs 10
上面的示例顯示0到20之間的偶數值。如果數字是偶數,則循環(huán)退出當前迭代。這是使用continue語句實現的。
在編譯時,它會生成以下JavaScript代碼:
//Generated by typescript 1.8.10 var num = 0; var count = 0; for (num = 0; num <= 20; num++) { if (num % 2 == 0) { continue; } count++; } console.log(" The count of odd values between 0 and 20 is: " + count); //outputs 10
The count of odd values between 0 and 20 is: 10
無限循環(huán)是一個無休止地運行的循環(huán)。for循環(huán)和while循環(huán)可用于創(chuàng)建無限循環(huán)。
for(;;) {
//statements
}示例:使用for循環(huán)的無限循環(huán)
for(;;) { console.log(“This is an endless loop”) }
while(true) { //statements }
while(true) { console.log(“This is an endless loop”) }
更多建議: