<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

鴻蒙TypeScript學習第7天:【TypeScript 循環】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-04-02 14:28 ? 次閱讀

1、TypeScript 循環

有的時候,我們可能需要多次執行同一塊代碼。一般情況下,語句是按順序執行的:函數中的第一個語句先執行,接著是第二個語句,依此類推。

編程語言提供了更為復雜執行路徑的多種控制結構。

循環語句允許我們多次執行一個語句或語句組,下面是大多數編程語言中循環語句的流程圖:

cke_10961.png


2、for 循環

TypeScript for 循環用于多次執行一個語句序列,簡化管理循環變量的代碼。

語法

語法格式如下所示:

for ( init; condition; increment ){
    statement(s);
}

下面是 for 循環的控制流程解析:

  1. init 會首先被執行,且只會執行一次。這一步允許您聲明并初始化任何循環控制變量。您也可以不在這里寫任何語句,只要有一個分號出現即可。
  2. 接下來,會判斷 condition 。如果為 true,則執行循環主體。如果為 false,則不執行循環主體,且控制流會跳轉到緊接著 for 循環的下一條語句。
  3. 在執行完 for 循環主體后,控制流會跳回上面的 increment 語句。該語句允許您更新循環控制變量。該語句可以留空,只要在條件后有一個分號出現即可。
  4. 條件再次被判斷。如果為 true,則執行循環,這個過程會不斷重復(循環主體,然后增加步值,再然后重新判斷條件)。在條件變為 false 時,for 循環終止。

在這里,statement(s) 可以是一個單獨的語句,也可以是幾個語句組成的代碼塊。

condition 可以是任意的表達式,當條件為 true 時執行循環,當條件為 false 時,退出循環。

流程圖

cke_17992.png

搜狗高速瀏覽器截圖20240326151547.png

鴻蒙NEXT學習文檔+mau123789是v

實例

以下實例計算 5 的階乘, for 循環生成從 5 到 1 的數字,并計算每次循環數字的乘積。

3、TypeScript

var num:number = 5; var i:number; var factorial = 1; for(i = num;i>=1;i--) { factorial *= i; } console.log(factorial)

編譯以上代碼得到如下 JavaScript 代碼:

4、JavaScript

鴻蒙NEXT學習文檔+mau123789是v
var num = 5;

var i;

var factorial = 1;

for (i = num; i >= 1; i--)

{

factorial *= i;

}

console.log(factorial);復制

執行以上 JavaScript 代碼,輸出結果為:

120

5、for...in 循環

for...in 語句用于一組值的集合或列表進行迭代輸出。

語法

語法格式如下所示:

for (var val in list) { 
    //語句 
}

val 需要為 string 或 any 類型。

實例

6、TypeScript

var j:any;

var n:any = "a b c"

for(j in n) {

console.log(n[j])

}復制

編譯以上代碼得到如下 JavaScript 代碼:

7、JavaScript

var j;
var n = "a b c";
for (j in n) {
    console.log(n[j]);
}復制

執行以上 JavaScript 代碼,輸出結果為:

a

b

c

8、for…of 、forEach、every 和 some 循環

此外,TypeScript 還支持 for…of 、forEach、every 和 some 循環。

for...of 語句創建一個循環來迭代可迭代的對象。在 ES6 中引入的 for...of 循環,以替代 for...in 和 forEach() ,并支持新的迭代協議。for...of 允許你遍歷 Arrays(數組), Strings(字符串), Maps(映射), Sets(集合)等可迭代的數據結構等。

9、TypeScript for...of 循環

let someArray = [1, "string", false];
 
for (let entry of someArray) {
    console.log(entry); // 1, "string", false
}復制

forEach、every 和 some 是 JavaScript 的循環語法,TypeScript 作為 JavaScript 的語法超集,當然默認也是支持的。

因為 forEach 在 iteration 中是無法返回的,所以可以使用 every 和 some 來取代 forEach。

10、TypeScript forEach 循環

let list = [4, 5, 6];
list.forEach((val, idx, array) = > {
    // val: 當前值
    // idx:當前index
    // array: Array
});復制

11、TypeScript every 循環

let list = [4, 5, 6];
list.every((val, idx, array) = > {
    // val: 當前值
    // idx:當前index
    // array: Array
    return true; // Continues
    // Return false will quit the iteration
});復制

12、while 循環

while 語句在給定條件為 true 時,重復執行語句或語句組。循環主體執行之前會先測試條件。

語法

語法格式如下所示:

while(condition)
{
   statement(s);
}

在這里,statement(s) 可以是一個單獨的語句,也可以是幾個語句組成的代碼塊。

condition 可以是任意的表達式,當條件為 true 時執行循環。 當條件為 false 時,程序流將退出循環。

流程圖

cke_100073.png

圖表中,while 循環的關鍵點是循環可能一次都不會執行。當條件為 false 時,會跳過循環主體,直接執行緊接著 while 循環的下一條語句。

實例

13、TypeScript

var num:number = 5; 
var factorial:number = 1; 
 
while(num >=1) { 
    factorial = factorial * num; 
    num--; 
} 
console.log("5 的階乘為:"+factorial);復制

編譯以上代碼得到如下 JavaScript 代碼:

14、JavaScript

var num = 5;
var factorial = 1;
while (num >= 1) {
    factorial = factorial * num;
    num--;
}
console.log("5 的階乘為:" + factorial);復制

執行以上 JavaScript 代碼,輸出結果為:

5 的階乘為:120

15、do...while 循環

不像 forwhile 循環,它們是在循環頭部測試循環條件。do...while 循環是在循環的尾部檢查它的條件。

語法

語法格式如下所示:

do
{
   statement(s);
}while( condition );

請注意,條件表達式出現在循環的尾部,所以循環中的 statement(s) 會在條件被測試之前至少執行一次。

如果條件為 true,控制流會跳轉回上面的 do,然后重新執行循環中的 statement(s)。這個過程會不斷重復,直到給定條件變為 false 為止。

流程圖

cke_127174.png

實例

TypeScript

var n:number = 10;
do { 
    console.log(n); 
    n--; 
} while(n >=0);復制

編譯以上代碼得到如下 JavaScript 代碼:

JavaScript

var num = 5;
var n = 10;
do {
    console.log(n);
    n--;
} while (n >= 0);復制

執行以上 JavaScript 代碼,輸出結果為:

10
9
8
7
6
5
4
3
2
1
0

16、break 語句

break 語句有以下兩種用法:

  1. break 語句出現在一個循環內時,循環會立即終止,且程序流將繼續執行緊接著循環的下一條語句。
  2. 它可用于終止 switch 語句中的一個 case。

如果您使用的是嵌套循環(即一個循環內嵌套另一個循環),break 語句會停止執行最內層的循環,然后開始執行該塊之后的下一行代碼。

語法

語法格式如下所示:

break;

流程圖

cke_148975.png

實例

TypeScript

var i:number = 1 
while(i<=10) { 
    if (i % 5 == 0) {   
        console.log ("在 1~10 之間第一個被 5 整除的數為 : "+i) 
        break     // 找到一個后退出循環
    } 
    i++ 
}  // 輸出 5 然后程序執行結束復制

編譯以上代碼得到如下 JavaScript 代碼:

JavaScript

var i = 1;
while (i <= 10) {
    if (i % 5 == 0) {
        console.log("在 1~10 之間第一個被 5 整除的數為 : " + i);
        break; // 找到一個后退出循環
    }
    i++;
} // 輸出 5 然后程序執行結束復制

執行以上 JavaScript 代碼,輸出結果為:

1~10 之間第一個被 5 整除的數為 : 5

17、continue 語句

continue 語句有點像 break 語句。但它不是強制終止,continue 會跳過當前循環中的代碼,強迫開始下一次循環。

對于 for 循環,continue 語句執行后自增語句仍然會執行。對于 whiledo...while 循環,continue 語句重新執行條件判斷語句。

語法

語法格式如下所示:

continue;

流程圖

cke_174486.png

實例

TypeScript

ar num:number = 0
var count:number = 0;
 
for(num=0;num<=20;num++) {
    if (num % 2==0) {
        continue
    }
    count++
}
console.log ("0 ~20 之間的奇數個數為: "+count)    //輸出10個偶數復制

編譯以上代碼得到如下 JavaScript 代碼:

JavaScript

var num = 0;
var count = 0;
for (num = 0; num <= 20; num++) {
    if (num % 2 == 0) {
        continue;
    }
    count++;
}
console.log("0 ~20 之間的奇數個數為: " + count); //輸出 10復制

執行以上 JavaScript 代碼,輸出結果為:

0 ~20 之間的奇數個數為: 10

18、無限循環

無限循環就是一直在運行不會停止的循環。 for 和 while 循環都可以創建無限循環。

for 創建無限循環語法格式:

for(;;) { 
   // 語句
}

實例

for(;;) { 
   console.log("這段代碼會不停的執行") 
}

while 創建無限循環語法格式:

while(true) { 
   // 語句
}

實例

while(true) { 
   console.log("這段代碼會不停的執行") 
}

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • HarmonyOS
    +關注

    關注

    79

    文章

    1876

    瀏覽量

    29330
  • OpenHarmony
    +關注

    關注

    23

    文章

    3375

    瀏覽量

    15192
  • 鴻蒙OS
    +關注

    關注

    0

    文章

    140

    瀏覽量

    4290
收藏 人收藏

    評論

    相關推薦

    鴻蒙TypeScript入門學習第6天:【條件語句】

    條件語句用于基于不同的條件來執行不同的動作。 TypeScript 條件語句是通過一條或多條語句的執行結果(True 或 False)來決定執行的代碼塊。
    的頭像 發表于 04-01 13:51 ?454次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b>入門<b class='flag-5'>學習</b>第6天:【條件語句】

    鴻蒙TypeScript 開發學習第9天:【TypeScript Number】

    TypeScript 與 JavaScript 類似,支持 Number 對象。 Number 對象是原始數值的包裝對象。
    的頭像 發表于 04-07 18:02 ?480次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b> 開發<b class='flag-5'>學習</b>第9天:【<b class='flag-5'>TypeScript</b> Number】

    鴻蒙語言TypeScript學習第16天:【類】

    TypeScript 支持面向對象的所有特性,比如 類、接口等。
    的頭像 發表于 04-15 09:29 ?519次閱讀
    <b class='flag-5'>鴻蒙</b>語言<b class='flag-5'>TypeScript</b><b class='flag-5'>學習</b>第16天:【類】

    鴻蒙TypeScript學習第17天:【對象】

    對象是包含一組鍵值對的實例。 值可以是標量、函數、數組、對象等
    的頭像 發表于 04-15 15:33 ?390次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b><b class='flag-5'>學習</b>第17天:【對象】

    鴻蒙TypeScript學習第20天:【模塊】

    TypeScript 模塊的設計理念是可以更換的組織代碼。 模塊是在其自身的作用域里執行,并不是在全局作用域,這意味著定義在模塊里面的變量、函數和類等在模塊外部是不可見的,除非明確地使用 export 導出它們。類似地,我們必須通過 import 導入其他模塊導出的變量、函數、類等。
    的頭像 發表于 04-18 15:19 ?473次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b><b class='flag-5'>學習</b>第20天:【模塊】

    【觸覺智能 Purple Pi OH 開發板體驗】二、鴻蒙系統APP應用例程學習HDC使用學習

    兩年開發鴻蒙APP也是使用的這兩種語言進行開發。當下看TypeScript程序還能說勉強看懂,但是當下開發程序就沒那個實力了,需要之后在抽時間學習。技術更新的也確實是快?。。?! 二、天氣預報程序開發
    發表于 08-31 11:13

    詳解了將三萬行代碼從Flow移植到TypeScript的全過程

    最新發布的Babel 7已經開始支持TypeScript了,這引起了我的注意。這個發布意味著采用TypeScript不再需要引入整個TypeScript生態系統,我們可以繼續通過Babel來生成JavaScript。更重要的是,
    的頭像 發表于 02-11 11:05 ?3122次閱讀

    搭建基于Vue3+Vite2+Arco+Typescript+Pinia后臺管理系統模板

    今天我們就來快速搭建一個基于Vue3+Vite2+Arco+Typescript+Pinia后臺管理系統模板。這樣可以幫大家快速制作自己的后臺模板
    的頭像 發表于 03-01 10:09 ?510次閱讀
    搭建基于Vue3+Vite2+Arco+<b class='flag-5'>Typescript</b>+Pinia后臺管理系統模板

    快速了解TypeScript和JavaScript之間的差異

    如果我們同時考慮兩者 ——TypeScript 與 JavaScript,那么每個 JavaScript 代碼在 TypeScript 中都是有效的。這意味著 TypeScript 是 JavaScript 的超集。
    的頭像 發表于 03-13 10:19 ?677次閱讀

    TypeScript之父也搞大模型:推出TypeChat

    C# 和 TypeScript 之父 Anders Hejlsberg 今天宣布了全新的開源項目 ——TypeChat,它通過 AI 在自然語言和應用程序模式 (application schema),以及 API 之間構建了一座 “橋梁”,能用新穎有趣的方式使用 TypeScr
    的頭像 發表于 07-24 09:27 ?592次閱讀
    <b class='flag-5'>TypeScript</b>之父也搞大模型:推出TypeChat

    鴻蒙開發之ArkTS基礎知識

    一、ArkTS簡介 ArkTS是HarmonyOS優選的主力應用開發語言。它在TypeScript(簡稱TS)的基礎上,匹配了鴻蒙的ArkUI框架,擴展了聲明式UI、狀態管理等相應的能力,讓開
    的頭像 發表于 01-24 16:44 ?689次閱讀
    <b class='flag-5'>鴻蒙</b>開發之ArkTS基礎知識

    鴻蒙TypeScript入門學習第2天【TypeScript安裝】

    本文介紹 TypeScript 環境的安裝。 我們需要使用到 npm 工具安裝,如果你還不了解 npm,可以參考我之前文檔。
    的頭像 發表于 03-27 15:22 ?218次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b>入門<b class='flag-5'>學習</b>第2天【<b class='flag-5'>TypeScript</b>安裝】

    鴻蒙TypeScript入門學習第5天:【TypeScript 運算符】

    運算符用于執行程序代碼運算,會針對一個以上操作數項目來進行運算。
    的頭像 發表于 04-01 16:18 ?124次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b>入門<b class='flag-5'>學習</b>第5天:【<b class='flag-5'>TypeScript</b> 運算符】

    鴻蒙TypeScript入門學習第8天:【TypeScript 函數】

    函數是一組一起執行一個任務的語句。 您可以把代碼劃分到不同的函數中。如何劃分代碼到不同的函數中是由您來決定的,但在邏輯上,劃分通常是根據每個函數執行一個特定的任務來進行的。
    的頭像 發表于 04-03 14:54 ?196次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b>入門<b class='flag-5'>學習</b>第8天:【<b class='flag-5'>TypeScript</b> 函數】

    鴻蒙TypeScript學習第13天:【元組】

    元組中允許存儲不同類型的元素,元組可以作為參數傳遞給函數。
    的頭像 發表于 04-11 14:43 ?168次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b><b class='flag-5'>學習</b>第13天:【元組】
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>