ArkTS-语句-分支-循环
1.分支语句
-
表达式: 可以被求值的代码,并将其计算出一个结果
-
语句: 一段可以执行的代码,是一个行为,例如分 支语句和循环语句
1.2 if分支
if 语句用于需要根据逻辑条件执行不同语句的场景。当逻辑条件为真时,执行对应的一组语句。
1.2.1 单分支
if (条件) {
条件成立执行的代码
}
-
小括号条件结果为 true,则执行大括号里面的代码
-
小括号内的结果若不是布尔类型时,会发生类型转换为布尔值
let score: number = 700
// 如果分数大于600分,提示“恭喜你,考入黑马大学”
if (score > 600) {
console.log('恭喜你,考入黑马大学')
}
// 小括号内的结果若不是布尔类型时,会发生类型转换为布尔值
if ('hi') {
console.log('hello world')
}
多学一招:如果大括号里面只有一条语句,可以省略大括号
1.2.2 双分支
/*
if (条件) {
条件成立执行的代码
} else {
条件不成立执行的代码
}
*/
let score: number = 599
// 如果分数大于600分,提示“恭喜你,考入黑马大学”; 否则提示再接再厉
if (score > 600) {
console.log('恭喜你,考入黑马大学')
} else {
console.log('再接再厉')
}
弹出提示框
AlertDialog.show({message:})
1.2.3 多分支
let score: number = 66
if (score >= 90) {
console.log('优秀')
} else if (score >= 70) {
console.log('良好')
} else if (score >= 60) {
console.log('及格')
} else {
console.log('不及格')
}
1.3 Switch分支
1.3.1 基础语法
switch (表达式) {
case 值1:
与值1匹配执行的语句
break
case 值2:
与值2匹配执行的语句
break
default:
以上都未成功匹配执行的代码
}
注意:
-
switch表达式的类型必须是number、enum或string
-
label必须是常量表达式或枚举常量值
-
如果没有break语句,则执行switch中的下一个label对应的代码块
1.4 条件表达式
条件表达式又叫三元运算或三元表达式
// 条件 ? 条件成立执行的表达式 : 条件不成立执行的表达式
let num1: number = 5
let num2: number = 10
// 返回较大值
let res: number = num1 > num2 ? num1 : num2
console.log('结果是', res)
2.条件渲染
ArkTS提供了渲染控制的能力。条件渲染可根据应用的不同状态,使用if
、else
和else if
渲染对应状态下的UI内容。
if
、else if
后跟随的条件语句可以使用状态变量,状态变量值变化时,条件渲染语句会进行更新。
@Entry
@Component
struct Index {
@State
counter: number = 1
build() {
Column() {
if (this.counter == 1) {
Text('1')
} else if (this.counter == 2){
Text('2')
} else {
Text('any')
}
// 单击按钮,切换显示 Text
Button('切换')
.onClick(() => {
this.counter ++
})
}
}
}
3.循环语句
作用:重复执行指定的一段代码
3.1 while语句
while (条件) {
条件成立重复执行的代码
}
3.1.1 基本使用
// 指定循环次数
let i: number = 1
while (i < 5) {
console.log('while~i', '重复执行的代码')
i++
}
Tips:循环三要素
-
初始值(变量)
-
循环条件
-
变化量(变量计数,自增或自减)
3.2 for语句
for (初始值; 条件; 变化量) { 重复执行的代码 }
3.3 退出循环
作用:满足指定条件退出循环的方式
-
break:终止循环
-
continue: 退出当前一次循环的执行,继续执行下一次循环
for (let i = 1; i <= 5; i++) {
if (i == 3) {
console.log('吃饱了,不吃了')
continue
}
console.log(`正在吃第${i}个苹果`)
}
4.遍历数组 for...of
-
语法:
for (let item of 数组名) {}
-
-
for ... of : 在 ... 之中 进行循环
-
item: 声明的一个变量, 用来在循环的时候接收每一个数组元素
-
let names: string[] = ['小红', '小明', '大强']
/*for(let i = 0; i < names.length; i++) {
console.log('名字是', names[i])
}*/
for (const item of names) {
console.log('for...of...名字是', item)
}