你可能會遇到這樣的情況,當(dāng)一段代碼需要執(zhí)行多次時(shí)。在一般情況下,語句按照順序執(zhí)行:首先執(zhí)行函數(shù)中的第一個(gè)語句,然后執(zhí)行第二個(gè)語句,依此類推。
編程語言提供了各種控制結(jié)構(gòu),允許更復(fù)雜的執(zhí)行路徑。
循環(huán)語句可以讓我們多次執(zhí)行語句或語句組。下面給出的是大多數(shù)編程語言中循環(huán)語句的一般形式。
TypeScript提供了不同類型的循環(huán)來處理循環(huán)要求。下圖說明了循環(huán)的分類:
迭代次數(shù)是確定/固定的循環(huán)稱為確定循環(huán)。for循環(huán)是一個(gè)確定循環(huán)的實(shí)現(xiàn)。
序號 | 循環(huán)和說明 |
---|---|
1 | for循環(huán) for循環(huán)是一個(gè)確定循環(huán)的實(shí)現(xiàn)。 |
當(dāng)循環(huán)中的迭代次數(shù)不確定或未知時(shí),將使用不確定循環(huán)。
可以使用以下方式實(shí)現(xiàn)不確定循環(huán):
序號 | 循環(huán)和說明 |
---|---|
1 | while循環(huán) 每次指定的條件評估結(jié)果為true時(shí),while循環(huán)都會執(zhí)行指令。 |
2 | do...while循環(huán) do ... while循環(huán)類似于while循環(huán),只是do ... while循環(huán)不會在第一次循環(huán)執(zhí)行時(shí)評估條件。 |
var n:number = 5 while(n > 5) { console.log("Entered while") } do { console.log("Entered do…while") } while(n>5)
該示例最初聲明了一個(gè)while循環(huán)。 僅當(dāng)表達(dá)式傳遞給while時(shí),才會輸入循環(huán),同時(shí)計(jì)算結(jié)果為true。在此示例中,n的值不大于零,因此表達(dá)式返回false并跳過循環(huán)。
另一方面,do ... while循環(huán)執(zhí)行一次語句。這是因?yàn)槌跏嫉豢紤]Boolean表達(dá)式。但是,對于后續(xù)迭代,while檢查條件并將控件從循環(huán)中取出。
在編譯時(shí),它會生成以下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);
上面的代碼將產(chǎn)生以下輸出:
Entered do…while
break語句用于將控件從結(jié)構(gòu)中取出。在循環(huán)中使用break會導(dǎo)致程序退出循環(huán)。它的語法如下:
break
現(xiàn)在,看看下面的示例代碼:
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
在編譯時(shí),它會生成以下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
它會產(chǎn)生以下的輸出:
The first multiple of 5 between 1 and 10 is : 5
continue語句跳過當(dāng)前迭代中的后續(xù)語句,并將控件帶回循環(huán)的開頭。與break語句不同,continue不會退出循環(huán)。它終止當(dāng)前迭代并開始后續(xù)迭代。
continue
下面給出了continue語句的一個(gè)例子:
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之間的偶數(shù)值。如果數(shù)字是偶數(shù),則循環(huán)退出當(dāng)前迭代。這是使用continue語句實(shí)現(xiàn)的。
在編譯時(shí),它會生成以下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)是一個(gè)無休止地運(yù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”) }
更多建議: