TypeScript教程(五)條件語句,循環,函數

一、條件語句

條件語句基于不同的條件來執行不同的動作

1.if語句:只有當指定條件為true時,使用該語句來執行代碼

2.if...else語句:當條件為true時執行代碼,當條件為else時執行其他代碼

3.if...else if...else語句:使用該語句來選擇多個代碼塊之一來執行

4.switch語句:使用該語句來選擇多個代碼塊之一來執行

1.if語句

由一個布爾表達式后跟一個或多個語句組成

語法:

if(boolean_expression){# 在布爾表達式 boolean_expression 為 true 執行
}

如果布爾表達式為true,則if內的語句塊會被執行,否則if語句后的第一組代碼將被執行

2.if...else語句

一個if語句后面一個可選的else語句,else在布爾表達式為false時被執行

語法

if(boolean_expression){# 在布爾表達式 boolean_expression 為 true 執行
}else{# 在布爾表達式 boolean_expression 為 false 執行
}

3.if...else if...else語句

在執行多個判斷條件時有用

語法

if(boolean_expression 1) {# 在布爾表達式 boolean_expression 1 為 true 執行
} else if( boolean_expression 2) {# 在布爾表達式 boolean_expression 2 為 true 執行
} else if( boolean_expression 3) {# 在布爾表達式 boolean_expression 3 為 true 執行
} else {# 布爾表達式的條件都為 false 時執行
}

注:

1.一個if判斷語句可以有0或1個else語句,必須在if...else后面

2.一個if判斷語句可以有0個或者多個else...if,必須在else之前

3.一旦執行了else...if里的代碼,后面的else...if或else將不再執行

4.switch...case語句

允許測試一個變量等于多個值時的情況,每個值為一個case,且被測試的變量會對每個switch case進行檢查

語法:

switch(expression){case constant-expression  :statement(s);break; /* 可選的 */case constant-expression  :statement(s);break; /* 可選的 *//* 您可以有任意數量的 case 語句 */default : /* 可選的 */statement(s);
}

規則:

1.switch?語句中的?expression?是一個要被比較的表達式,可以是任何類型,包括基本數據類型(如 number、string、boolean)、對象類型(如 object、Array、Map)以及自定義類型(如 class、interface、enum)等。

2.在一個 switch 中可以有任意數量的 case 語句。每個 case 后跟一個要比較的值和一個冒號。

3.case 的?constant-expression?必須與 switch 中的變量 expression 具有相同或兼容的數據類型。

4.當被測試的變量等于 case 中的常量時,case 后跟的語句將被執行,直到遇到?break?語句為止。

5.當遇到?break?語句時,switch 終止,控制流將跳轉到 switch 語句后的下一行。

6.不是每一個 case 都需要包含?break。如果 case 語句不包含?break,控制流將會?繼續?后續的 case,直到遇到 break 為止。

7.一個?switch?語句可以有一個可選的?default?case,出現在 switch 的結尾。default 關鍵字則表示當表達式的值與所有 case 值都不匹配時執行的代碼塊。default case 中的?break?語句不是必需的。

二、循環

1.for循環

用于多次執行一個語句序列,減緩管理循環變量的代碼

語法:

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

流程解析:

1.init會先被執行,且只會執行一次,這一步允許聲明并初始化任何循環控制變量,也可以在這里不屑任何語句,一個;即可

2.然后會判斷condition,如果為true,則執行循環主體,如果為false,則不執行主體,且控制流會跳轉到緊接著for循環的下一條語句

3.在執行完for循環主體后,控制流會跳回上面的increment語句,允許更新循環控制變量,可以留空

4.條件再次被判斷,如果為true,則執行循環,過程不斷重復,在條件為false時,結束循環

2.for...in循環

用于一組值的集合或列表進行迭代輸出

語法:

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

val需要為string或any類型

3.for...of,forEach,every和some循環

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

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

2.forEach,every和some是javaScript的循環語法,TypeScript為JavaScript的超集,所以支持

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

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

4.while循環

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

語法:

while(condition)
{statement(s);
}

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

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

5.do...while循環

不像for和while循環,他們是循環頭部測試循環條件,do...while是在尾部測試循環條件

語法:

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

因為條件表達式語句在尾部,所以循環中的statement(s)會在條件被測試之前至少執行一次

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

6.break語句

兩種特性:

1.break出現在一個循環體內時,循環會立刻終止,切程序流會緊接著循環下一條語句

2.可用于終止switch語句中的一個case

如果使用的是嵌套循環,break語句會停止執行最內層的循環,然后開始執行模塊之后的下一行代碼

語法:

break;

7.continue語句

continue語句有點像break語句,但是他是跳過當前循環中的代碼,強制執行下一次循環

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

語法:

continue;

8.無限循環

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

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

for(;;) { // 語句
}

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

while(true) { // 語句
} 

三、函數

函數是一組一起執行一個任務的語句

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/36133.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/36133.shtml
英文地址,請注明出處:http://en.pswp.cn/news/36133.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Shell函數調用

定義一個函數,計算所有參數的和: #!/bin/bashfunction getsum(){local sum0for n in $do((sumn))donereturn $sum }getsum 10 20 55 15 #調用函數并傳遞參數 echo $?運行結果: 100

spss--數據分析Log-Binonial模型

在橫斷面研究中,Log-binomial 模型能夠獲得研究因素與結局變量的關聯強度指標患病率比(PR),是一種研究二分類觀察結果與多因素之間關系的重要方法,在醫學研究等領域中得到了廣泛的應用。 采用log-binomial 模型可直接估…

elementUi表單恢復至初始狀態并不觸發表單驗證

elementUi表單恢復至初始狀態并不觸發表單驗證 1.場景再現2.解決方法 1.場景再現 左側是樹形列表,右側是顯示節點的詳情,點擊按鈕應該就是新增一個規則的意思,表單內容是沒有改變的,所以就把需要把表單恢復至初始狀態并不觸發表單…

大語言模型(LLM)與 Jupyter 連接起來了

現在,大語言模型(LLM)與 Jupyter 連接起來了! 這主要歸功于一個名叫 Jupyter AI 的項目,它是官方支持的 Project Jupyter 子項目。目前該項目已經完全開源,其連接的模型主要來自 AI21、Anthropic、AWS、Co…

MSP432自主開發筆記6:定時器多通道捕獲多條編碼器線脈沖數

所用開發板:MSP432P401R 今日在此更新一下編碼器測速的定時器捕獲寫法,之前學習時竟然忘記更新了~~ 本文講如何用定時器的通道來 捕獲編碼器的脈沖信號數量,不提供速度路程的計算方式, 文章提供源碼,測試工程下載&a…

積木報表集成前端加載js文件404

項目場景: 在集成積木報表和shiro時候: 集成積木報表,shrio,shrio是定義在另一個模塊下的,供另一個啟動類使用,積木報表集成shrio的時候,需要依賴存放shrio的核心包,該核心包除了存…

android 如何分析應用的內存(十七)——使用MAT查看Android堆

android 如何分析應用的內存(十七)——使用MAT查看Android堆 前一篇文章,介紹了使用Android profiler中的memory profiler來查看Android的堆情況。 如Android 堆中有哪些對象,這些對象的引用情況是什么樣子的。 可是我們依然面臨…

【ArcGIS】經緯度數據轉化成平面坐標數據

將點位置導入Gis中,如下(經緯度表征位置): 如何利用Gis將其轉化為平面坐標呢? Step1 坐標變換 坐標變換,打開ArcToolbox,找到“數據管理工具”->“投影和變換”->“要素”->“投影”…

MySQL—緩存

目錄標題 為什么要有Buffer Poolbuffer pool有多大buffer pool緩存什么 如何管理Buffer Pool如何管理空閑頁如何管理臟頁如何提高緩存命中率預讀失效buffer pool污染 臟頁什么時候會被刷入到磁盤 為什么要有Buffer Pool 雖然說MySQL的數據是存儲在磁盤中,但是也不能…

抖音關鍵詞搜索小程序排名怎么做

抖音關鍵詞搜索小程序排名怎么做 1 分鐘教你制作一個抖音小程序。 抖音小程序就是我的視頻,左下方這個藍色的鏈接,點進去就是抖音小程序。 如果你有了這個小程序,發布視頻的時候可以掛載這個小程序,直播的時候也可以掛載這個小…

Express 實戰(一):概覽

在正式學習 Express 內容之前,我們有必要從大的方面了解一下 Node.js 。 在很長的一段時間里,JavaScript 一門編寫瀏覽器中運行腳本的語言。不過近些年,隨著互聯網的發展以及技術進步,JavaScript 迎來了一個集中爆發的時代。一個…

谷歌關閉跨域限制.(生成一個開發瀏覽器),Chrome關閉跨域

(一)、首先找到瀏覽器在電腦磁盤中的位置,并復制 (二)、復制一個瀏覽器的快捷方式到桌面(不影響正常瀏覽器) (三)、chrom鼠標右鍵屬性,修改快捷方式的目標 (四)chrome.exe 后面添加 --disable-web-security --user-data-dir 復制的Chrome瀏覽…

787. 歸并排序

文章目錄 QuestionIdeasCode Question 給定你一個長度為 n 的整數數列。 請你使用歸并排序對這個數列按照從小到大進行排序。 并將排好序的數列按順序輸出。 輸入格式 輸入共兩行,第一行包含整數 n 。 第二行包含 n 個整數(所有整數均在 1~109 范圍…

JUC并發編程(JUC核心類、TimeUnit類、原子操作類、CASAQS)附帶相關面試題

目錄 1.JUC并發編程的核心類 2.TimeUnit(時間單元) 3.原子操作類 4.CAS 、AQS機制 1.JUC并發編程的核心類 雖然java中的多線程有效的提升了程序的效率,但是也引發了一系列可能發生的問題,比如死鎖,公平性、資源管理…

【100天精通python】Day34:使用python操作數據庫_ORM(SQLAlchemy)使用

目錄 專欄導讀 1 ORM 概述 2 SQLAlchemy 概述 3 ORM:SQLAlchemy使用 3.1 安裝SQLAlchemy: 3.2 定義數據庫模型類: 3.3 創建數據表: 3.4 插入數據: 3.5 查詢數據: 3.6 更新數據: 3.7 刪…

C/C++中volatile關鍵字詳解

1. 為什么用volatile? C/C 中的 volatile 關鍵字和 const 對應,用來修飾變量,通常用于建立語言級別的 memory barrier。這是 BS 在 "The C Programming Language" 對 volatile 修飾詞的說明: A volatile specifier is a hint to a…

【Git】 git push origin master Everything up-to-date報錯

hello,我是索奇,可以叫我小奇 git push 出錯?顯示 Everything up-to-date 那么看看你是否提交了message 下面是提交的簡單流程 git add . git commit -m "message" git push origin master 大多數伙伴是沒寫git commit -m "…

AI自動駕駛

AI自動駕駛 一、自動駕駛的原理二、自動駕駛的分類三、自動駕駛的挑戰四、自動駕駛的前景五、關鍵技術六、自動駕駛的安全問題七、AI數據與自動駕駛八、自動駕駛的AI算法總結 自動駕駛技術是近年來備受關注的熱門話題。它代表了人工智能和機器學習在汽車行業的重要應用。本文將…

UML之四種事物

目錄 結構事物 行為事物 分組事物: 注釋事物 結構事物 1.類(Class) -類是對一組具有相同屬性、方法、關系和語義的對象的描述。一個類實現一個或多個接口 2.接口(interface) -接口描述 了一個類或構件的一個服務的操作集。接口僅僅是定義了一組操作的規范&…

案例16 基于Spring Boot實現學生新增案例

基于Spring Boot實現學生新增。 1. 創建Spring Boot項目 創建Spring Boot項目&#xff0c;項目名稱為case16-springboot-student01。 ? 2. 設置項目信息 ? 3. 選擇依賴 選擇Lombok ? 選擇Spring Web ? 4. 設置項目名稱 ? 5. Maven依賴 <?xml version"1.0&qu…