鴻蒙OS應用開發之語句

在程序開發中,已經有上面的運算符和數據類型了,可以滿足了大部的需求,但是這些程序還是比較簡單的計算和邏輯運算,如果需要復雜的計算和邏輯處理,就需要采用復雜邏輯程序塊來處理了,也就是復雜條件語句才能解決。主要的語句有條件語句、switch語句、條件表達式語句、for循環語句、for-of語句、while語句、Do-while語句、Break語句、Continue語句、Throw和Try語句。

If語句

if語句用于需要根據邏輯條件執行不同語句的場景。當邏輯條件為真時,執行對應的一組語句,否則執行另一組語句(如果有的話)。 else部分也可能包含if語句。

if (condition1) {

??// 語句1

} else if (condition2) {

??// 語句2

} else {

??// else語句

}

采用的形式如上所示。

但是可以有幾種形式,第一種形式:

這種只有if語句部分,并沒有else部分。

第二種形式:

這里有if部分和else部分,

最后一種形式就是if和else嵌套形式:

通過if-else語句,就可以執行復雜的邏輯語句,因為每一個大括號里都是一塊更加復雜的語句,這樣就可以不斷一層一層判斷,就可以解決更多的邏輯處理問題。不過在編程時要注意嵌套的層次,一般不要超過三層的嵌套,如果要超過這個,就需要分成不同的函數來嵌套調用。

條件語句是使用比較多的語句,畢竟很多判斷選擇都需要使用它。

Switch語句

使用switch語句來執行與switch表達式值匹配的代碼塊。這種情況一般是一個變量存在多個狀態,選擇其中一個執行。特別適合狀態機這樣處理,又或者適合減少if語句的編寫。像狀態機多層狀態的選擇就比較容易理解。

switch (expression) {

??case label1: // 如果label1匹配,則執行

????// ...

????// 語句1

????// ...

????break; // 可省略

??case label2:

??case label3: // 如果label2或label3匹配,則執行

????// ...

????// 語句23

????// ...

????break; // 可省略

??default:

????// 默認語句

}

下面的例子:

switch表達式的類型必須是number、enum或string。

label必須是常量表達式或枚舉常量值。

如果switch表達式的值等于某個label的值,則執行相應的語句。

如果沒有任何一個label值與表達式值相匹配,并且switch具有default子句,那么程序會執行default子句對應的代碼塊。

break語句(可選的)允許跳出switch語句并繼續執行switch語句之后的語句。

如果沒有break語句,則執行switch中的下一個label對應的代碼塊。

條件表達式

條件表達式由第一個表達式的布爾值來決定返回其它兩個表達式中的哪一個。

condition ? expression1 : expression2

例子如下:

條件表達式比較適合用來判斷大小的情況。或者簡短的條件選擇,不用寫if語句這么復雜的情況。

For語句

for語句會被重復執行,直到循環退出語句值為false。

循環語句是比較常用的語句,畢竟很多數據的處理都是一個隊列,或者列表,那么就需要遍歷檢查它是否滿足某種情況。

比如下面的例子:

for循環語句的形式:

for ([init]; [condition]; [update]) {

??statements

}

for語句的執行流程如下:

1、 執行init表達式(如有)。此表達式通常初始化一個或多個循環計數器。

2、 計算condition。如果它的值為true(或者沒有該語句),則執行循環主體的語句。如果它的值為false,則for循環終止。

3、 執行循環主體的語句。

4、 如果有update表達式,則執行該表達式。

5、 回到步驟2。

For-of語句

使用for-of語句可遍歷數組或字符串。示例如下:

for (forVar of expression) {

??statements

}

具體的例子如下:

While語句

只要condition的值為true,while語句就會執行statements語句。示例如下:

while (condition) {

??statements

}

例子如下:

基中條件部分是一個邏輯表達式。

Do-while語句

在condition的值為false之前,statements語句會重復執行。示例如下:

do {

??statements

} while (condition)

這種情況是先執行復雜語句,再判斷條件,而while語句是先判斷條件再執行復合語句。

Break語句

使用break語句可以終止循環語句或switch。

前面已經在switch里使用了,用于跳出每一個分支情況。它還可以使用在循環里,可以提前跳出循環,比如循環執行一半,再判斷滿足了條件,如果沒有break語句,就沒有辦法提前退出循環了。

上面的例子就是提前退出了循環,由于這個循環是一個無窮的循環,如果沒有退出語句,就沒有辦法這樣編寫了。

如果break語句后帶有標識符,則將控制流轉移到該標識符所包含的語句塊之外。

let x = 1

label: while (true) {

??switch (x) {

????case 1:

??????// statements

??????break label // 中斷while語句

??}

}

Continue語句

continue語句會停止當前循環迭代的執行,并將控制傳遞給下一個迭代。

let sum = 0

for (let x = 0; x < 100; x++) {

??if (x % 2 == 0) {

????continue

??}

??sum += x

}

在上面的循環里,執行到continue語句時,就會提前結束當前循環,不再執行后面的sum += x的語句。

Throw和Try語句

throw語句用于拋出異常或錯誤:

throw new Error('this error')

try語句用于捕獲和處理異常或錯誤:

try {

??// 可能發生異常的語句塊

} catch (e) {

??// 異常處理

}

支持finally語句:

function processData(s: string) {

??let error: Error | null = null

??try {

????console.log('Data processed: ', s)

????// ...

????// 可能發生異常的語句

????// ...

??} catch (e) {

????error = e as Error

????// ...

????// 異常處理

????// ...

??} finally {

????if (error != null) {

??????console.log(`Error caught: input='${s}', message='${error.message}'`)

????}

??}

}

到這里就學習完成基本的語句,這些需要經常練習才能合適地使用它。

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

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

相關文章

nn.Sequential|nn.ModuleDict|nn.ModuleList 詳解

文章目錄 1、簡介2、三者之間的區別3、如何讓nn.ModuleList 和nn.ModuleDict實現推理3.1 方案1: 實現forward函數3.2 方案2: 將nn.ModuleList 和nn.ModuleDict轉換為nn.Sequential4、nn.ModuleDict、nn.ModuleList 的區別5、nn.ModuleList 、 nn.ModuleDict 與 Python list、…

模型 心流

本系列文章 主要是 分享模型&#xff0c;涉及各個領域&#xff0c;重在提升認知。完全投入其中。 1 心流的應用 1.1 優秀運動員的心流體驗 邁克爾喬丹&#xff08;Michael Jordan&#xff09;&#xff1a;籃球之神喬丹在比賽中經常進入心流狀態&#xff0c;他曾表示&#xff…

DIY手工藝作坊網站建設的作用如何

我國文化悠久流長&#xff0c;很多手工藝品制作技術放在如今依然有很高的需求度&#xff0c;加之現代新增的技藝&#xff0c;樣式多且藝術性強&#xff0c;比如常見的陶器手工制作技術&#xff0c;當然還有更多。 而對相關作坊來說&#xff0c;除了藝術傳承外&#xff0c;還需…

接觸剛性環境任務下的機器人力控(阻抗)性能測試

內涵 接觸剛性環境任務下的機器人力控&#xff08;阻抗&#xff09;性能測試旨在評估機器人在與剛性物體交互時的性能表現。這種測試通過調整機器人的控制參數&#xff0c;如期望剛度和期望阻尼等&#xff0c;并分析記錄的數據&#xff0c;旨在確保機器人能夠在執行任務時保持…

短劇分銷小程序/APP開發:開啟短劇收益時代

今年&#xff0c;短劇火爆出圈&#xff0c;市場規模將達至200億元至300億元。國內全全平臺付費短劇日充值金額為6000萬元&#xff0c;短劇作為一種“快餐式”文化迅速爆火。 短劇契合了觀眾娛樂時間碎片化的發展趨勢&#xff0c;相比于傳統的電視劇&#xff0c;短劇節奏快、劇…

Nacos源碼解讀10——配置中心的客戶端怎么處理服務端推送的配置信息變更

自動裝配 SpringBoot 自動裝配機制 加載 WEB/INF spring.factories org.springframework.cloud.bootstrap.BootstrapConfiguration\ com.alibaba.cloud.nacos.NacosConfigBootstrapConfigurationjava Configuration(proxyBeanMethods false) ConditionalOnProperty(name &q…

MongoDB的連接數據庫,創建、刪除數據庫,創建、刪除集合命令

本文主要介紹MongoDB的連接數據庫&#xff0c;創建、刪除數據庫&#xff0c;創建、刪除集合命令。 目錄 MongoDB連接數據庫連接到本地 MongoDB 實例連接到遠程 MongoDB 實例 MongoDB創建和刪除數據庫MongoDB創建和刪除集合創建集合刪除集合 MongoDB連接數據庫 連接 MongoDB 數…

P1317 低洼地題解

題目 一組數&#xff0c;分別表示地平線的高度變化。高度值為整數&#xff0c;相鄰高度用直線連接。找出并統計有多少個可能積水的低洼地&#xff1f; 如圖&#xff1a;地高變化為 [0,1,0,2,1,2,0,0,2,0]。 輸入輸出格式 輸入格式 兩行&#xff0c;第一行n, 表示有n個數。第…

Spark DataFrame和Dataset使用例子

文章目錄 1、基本操作1.1、創建SparkSession1.2、創建DataFrames1.3、創建Dataset操作1.4、運行sql查詢1.5、創建全局臨時視圖1.6、創建Datasets1.7、與rdd進行互操作1.7.1、使用反射推斷模式1.7.2、以編程方式指定模式 2、完整的測試例子 1、基本操作 1.1、創建SparkSession …

openGauss學習筆記-151 openGauss 數據庫運維-備份與恢復-物理備份與恢復之gs_basebackup

文章目錄 openGauss學習筆記-151 openGauss 數據庫運維-備份與恢復-物理備份與恢復之gs_basebackup151.1 背景信息151.2 前提條件151.3 語法151.4 示例151.5 從備份文件恢復數據 openGauss學習筆記-151 openGauss 數據庫運維-備份與恢復-物理備份與恢復之gs_basebackup 151.1 …

NeuralKG運行備忘

環境配置&#xff1a; conda create -n neuralkg python3.8 conda activate neuralkg pip install torch1.9.1cu111 -f https://download.pytorch.org/whl/torch_stable.html pip install dgl-cu111 dglgo -f https://data.dgl.ai/wheels/repo.html pip install neuralkg! co…

基于java swing 藥品銷售管理系統

大家好&#xff0c;我是DeBug&#xff0c;很高興你能來閱讀&#xff01;作為一名熱愛編程的程序員&#xff0c;我希望通過這些教學筆記與大家分享我的編程經驗和知識。在這里&#xff0c;我將會結合實際項目經驗&#xff0c;分享編程技巧、最佳實踐以及解決問題的方法。無論你是…

短視頻賬號剪輯矩陣+無人直播系統源頭開發

抖去推爆款視頻生成器&#xff0c;通過短視頻矩陣、無人直播&#xff0c;文案引流等&#xff0c;打造實體商家員工矩陣、用戶矩陣、直播矩陣&#xff0c;輔助商家品牌曝光&#xff0c;團購轉化等多功能賦能商家拓客引流。 短視頻矩陣通俗來講就是批量剪輯視頻和批量發布視頻&am…

Multisim電路仿真軟件使用教程

安裝直接參考這篇文章&#xff1a;Multisim 14.0安裝教程 軟件管家公眾號里有很多軟件&#xff0c;需要的可以去找下然后安裝&#xff0c;這里用的是14.0版本。 這里有個大神的詳細教程&#xff0c;可以參考&#xff1a; Multisim軟件使用詳細入門教程&#xff08;圖文全解&…

Java Docker 生產環境部署

1. 引言 隨著容器化技術的廣泛應用&#xff0c;Docker成為了一種非常流行的容器化解決方案。Java作為一種跨平臺的編程語言&#xff0c;在生產環境中也廣泛使用。本文將介紹如何使用Docker來部署Java應用程序&#xff0c;并探討一些最佳實踐和注意事項。 2. Docker簡介 Dock…

Python房價分析(二)隨機森林分類模型

目錄 1 數據預處理 1.1 房價數據介紹 1.2 數據預處理 1.2.1 缺失值處理 1.2.2異常值處理 1.2.3 數據歸一化 1.2.4 分類特征編碼 2 隨機森林模型 2.1 模型概述 2.2 建模步驟 2.3 參數搜索過程 3模型評估 3.1 模型評估結果 3.2 混淆矩陣 3.3 繪制房價類別三分類的…

面試官:性能測試瓶頸調優你是真的會嗎?

引言&#xff1a;性能瓶頸調優 在實際的性能測試中&#xff0c;會遇到各種各樣的問題&#xff0c;比如 TPS 壓不上去等&#xff0c;導致這種現象的原因有很多&#xff0c;測試人員應配合開發人員進行分析&#xff0c;盡快找出瓶頸所在。 理想的性能測試指標結果可能不是很高&…

Linux內核--內存管理(六)補充--進程頁表

目錄 一、引言 二、頁表 ------>2.1、頁表的大小 ------>2.2、頁表起始地址 ------>2.3、CPU調度 ------>2.4、用戶態訪問虛擬地址 ------>2.5、頁表組成部分 ------------>2.5.1、進程用戶態頁表 ------------>2.5.2、內核態頁表 ------>2.…

c++學習之異常

前言 早在c語言的時候&#xff0c;就已經有處理錯誤的方式了&#xff0c;第一種方式太過暴力&#xff0c;就是斷言&#xff0c;程序發生錯誤&#xff0c;直接終止退出&#xff0c;這樣的報錯對于真正開發應用等太過暴力。第二種方式&#xff0c;就是返回errno&#xff0c;其實&…

Latex公式中矩陣的方括號和圓括號表示方法

一、背景 在使用Latex寫論文時&#xff0c;不可避免的涉及到矩陣公式。有的期刊要求矩陣用方括號&#xff0c;有的期刊要求矩陣用圓括號。因此&#xff0c;特記錄一下Latex源碼在兩種表示方法上的區別&#xff0c;以及數組和方程組的擴展。 二、矩陣的方括號表示 首先所有的…