鸿蒙Harmony开发实战—ArkTS语句

server/2024/10/18 7:55:33/

语句

If语句

if语句用于需要根据逻辑条件执行不同语句的场景。当逻辑条件为真时,执行对应的一组语句,否则执行另一组语句(如果有的话)。 else部分也可能包含if语句。

if语句如下所示:

if (condition1) {// 语句1
} else if (condition2) {// 语句2
} else {// else语句
}
typescript

条件表达式可以是任何类型。但是对于boolean以外的类型,会进行隐式类型转换:

let s1 = 'Hello';
if (s1) {console.log(s1); // 打印“Hello”
}let s2 = 'World';
if (s2.length != 0) {console.log(s2); // 打印“World”
}
typescript
Switch语句

使用switch语句来执行与switch表达式值匹配的代码块。

switch语句如下所示:

switch (expression) {case label1: // 如果label1匹配,则执行// ...// 语句1// ...break; // 可省略case label2:case label3: // 如果label2或label3匹配,则执行// ...// 语句23// ...break; // 可省略default:// 默认语句
}
typescript

如果switch表达式的值等于某个label的值,则执行相应的语句。

如果没有任何一个label值与表达式值相匹配,并且switch具有default子句,那么程序会执行default子句对应的代码块。

break语句(可选的)允许跳出switch语句并继续执行switch语句之后的语句。

如果没有break语句,则执行switch中的下一个label对应的代码块。

 点击领取→【纯血版鸿蒙全套最新学习资料】

条件表达式

条件表达式由第一个表达式的布尔值来决定返回其它两个表达式中的哪一个。

示例如下:

condition ? expression1 : expression2
typescript

如果condition的为真值(转换后为true的值),则使用expression1作为该表达式的结果;否则,使用expression2

示例:

let isValid = Math.random() > 0.5 ? true : false;
let message = isValid ? 'Valid' : 'Failed';
typescript
For语句

for语句会被重复执行,直到循环退出语句值为false

for语句如下所示:

for ([init]; [condition]; [update]) {statements
}
typescript

for语句的执行流程如下:

1、 执行init表达式(如有)。此表达式通常初始化一个或多个循环计数器。
2、 计算condition。如果它为真值(转换后为true的值),则执行循环主体的语句。如果它为假值(转换后为false的值),则for循环终止。
3、 执行循环主体的语句。
4、 如果有update表达式,则执行该表达式。
5、 回到步骤2。

示例:

let sum = 0;
for (let i = 0; i < 10; i += 2) {sum += i;
}
typescript
For-of语句

使用for-of语句可遍历数组或字符串。示例如下:

for (forVar of expression) {statements
}
typescript

示例:

for (let ch of 'a string object') {/* process ch */
}
typescript
While语句

只要condition为真值(转换后为true的值),while语句就会执行statements语句。示例如下:

while (condition) {statements
}
typescript

示例:

let n = 0;
let x = 0;
while (n < 3) {n++;x += n;
}
typescript
Do-while语句

如果condition的值为真值(转换后为true的值),那么statements语句会重复执行。示例如下:

do {statements
} while (condition)
typescript

示例:

let i = 0;
do {i += 1;
} while (i < 10)
typescript
Break语句

使用break语句可以终止循环语句或switch

示例:

let x = 0;
while (true) {x++;if (x > 5) {break;}
}
typescript

如果break语句后带有标识符,则将控制流转移到该标识符所包含的语句块之外。

示例:

let x = 1
label: while (true) {switch (x) {case 1:// statementsbreak label // 中断while语句}
}
typescript
Continue语句

continue语句会停止当前循环迭代的执行,并将控制传递给下一个迭代。

示例:

let sum = 0;
for (let x = 0; x < 100; x++) {if (x % 2 == 0) {continue}sum += x;
}
typescript
ThrowTry语句

throw语句用于抛出异常或错误:

throw new Error('this error')
typescript

try语句用于捕获和处理异常或错误:

try {// 可能发生异常的语句块
} catch (e) {// 异常处理
}
typescript

下面的示例中throwtry语句用于处理除数为0的错误:

class ZeroDivisor extends Error {}function divide (a: number, b: number): number{if (b == 0) throw new ZeroDivisor();return a / b;
}function process (a: number, b: number) {try {let res = divide(a, b);console.log('result: ' + res);} catch (x) {console.log('some error');}
}
typescript

支持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.ppmy.cn/server/103955.html

相关文章

裸金属服务器和裸金属云服务器:区别、优势与选择

裸金属服务器和裸金属云服务器的区别、优势与选择的分析&#xff1a; 一、区别 1. 资源独占性 - 裸金属服务器&#xff1a;提供完全独立、专属的物理服务器资源&#xff0c;不存在任何资源共享&#xff0c;确保每个用户对硬件资源的绝对占有。 - 裸金属云服务器&#xff1a;尽…

如何选择需求跟踪管理软件?8款优质推荐

本文将介绍8款需求跟踪管理软件&#xff1a;PingCode、Worktile、得帆、协作云、火山引擎、Jira、VersionOne、YouTrack。 在面对众多需求跟踪管理软件时&#xff0c;每款软件都声称能提升效率、简化流程&#xff0c;但到底哪一款才真正适合你的团队&#xff1f;为了选择合适的…

Conditional Flow Matching: Simulation-Free Dynamic Optimal Transport论文阅读笔记

Conditional Flow Matching: Simulation-Free Dynamic Optimal Transport笔记 发现问题 连续正规化流&#xff08;CNF&#xff09;是一种有吸引力的生成式建模技术&#xff0c;但在基于模拟的最大似然训练中受到了限制。 解决问题 介绍一种新的条件流匹配&#xff08;CFM)&…

【网络】HTTPS——HTTP的安全版本

1.HTTP的问题 1、使用明文通信 HTTP协议不具备给通讯内容加密的功能&#xff0c;所有使用HTTP协议通信的请求和响应的内容无法进行加密,都是使用明文发送。由于HTTP属于TCP/IP协议族的协议&#xff0c;按照TCP/IP协议族的通讯机制&#xff0c;HTTP在整个通讯线路上都存在被窃听…

LabVIEW锅炉燃烧远程监控系统

随着信息技术的发展&#xff0c;远程监控技术已经广泛应用于各种工业过程。开发了一个基于LabVIEW和互联网技术的锅炉燃烧远程监控系统&#xff0c;该系统不仅提高了锅炉运行的安全性和效率&#xff0c;还具备了故障远程诊断的功能&#xff0c;为锅炉管理提供了一种全新的解决方…

【机器学习】小样本学习的实战技巧:如何在数据稀缺中取得突破

我的主页&#xff1a;2的n次方_ 在机器学习领域&#xff0c;充足的标注数据通常是构建高性能模型的基础。然而&#xff0c;在许多实际应用中&#xff0c;数据稀缺的问题普遍存在&#xff0c;如医疗影像分析、药物研发、少见语言处理等领域。小样本学习&#xff08;Few-Shot Le…

碰撞检测 | 基于ROS Rviz插件的多边形碰撞检测仿真平台

目录 0 专栏介绍1 基于多边形的碰撞检测2 碰撞检测仿真平台搭建2.1 多边形实例2.2 外部服务接口2.3 Rviz插件化 3 案例演示3.1 功能介绍3.2 绘制多边形 0 专栏介绍 &#x1f525;课设、毕设、创新竞赛必备&#xff01;&#x1f525;本专栏涉及更高阶的运动规划算法轨迹优化实战…

力控机器人torque-controlled robots

力控机器人&#xff08;Torque-Controlled Robots&#xff09;&#xff0c;也称为力矩控制机器人&#xff0c;是一种能够感知并实时控制施加在物体上力量的机器人系统。这类机器人通过集成力传感技术&#xff08;Force Sensing Technology&#xff09;和控制算法&#xff08;Co…