回复
七、ArkTS-语句-分支-循环 原创
亚鲁鲁666
发布于 2024-12-10 21:40
浏览
1收藏
1.语句的概念
语句概念: 一段可以一段可以执行的代码, 是一个行为(num=a+b)
表达式: 可以被求职的一段代码, 将其计算出一个结果(1+1)
2.分支语句
2.1 If分支
if 语句用于需要根据逻辑条件执行不同语句的场景。当逻辑条件为真时,执行对应的一组语句。
2.1.1 if(){}-单分支
单分支 ( 满足条件,就会执行一段代码 )
- 小括号条件结果为 true,则执行大括号里面的代码
- 小括号内的结果若不是布尔类型时,会自动发生数据类型的隐式转换为布尔值* ArkTS与JS都有数据类型的隐式转换* ->false, 0, '', undefined, null进行逻辑计算的售后,会被隐式转换为false* ->除了以上几个**,其他的都为true**
2.1.2 if(){}else{}-双分支
双分支 ( 满足条件, 就会执行A代码, 不满足会执行B代码 )
AlerDialog.show({message:'最小值为1,不能再减了'}) //文本提示框
2.1.3 if(){}else fi{}...else -多分支
if 多分支, 可以解决多种分支的情况
2.2Switch分支
switch分支一般用于精确匹配, 不同的值执行不同的代码
注意:** break结束语句, 不能省略,** 否则无论是否匹配成功都直接执行switch中的下一个代码块()
if 和 switch 多分支区别
- if: 判断的更多是区间
- wsitch:常用于精确值的判断
let str:string = '杭州'
switch (str){
case '北京':
console.log('欢迎来到北京')
break
case '上海':
console.log('欢迎来到上海')
break
case '杭州':
console.log('欢迎来到杭州')
break
case '深圳':
console.log('欢迎来到深圳')
break
default :
console.log('世界这么大, 可以去看看')
}
@Entry
@Component
struct Index {
@State message: string = 'Hello World';
build() {
Row() {
Column() {
Text(this.message)
.fontSize(50)
.fontWeight(FontWeight.Bold)
}
.width('100%')
}
.height('100%')
}
}
2.3三元条件表达式
语法: 条件 ? 条件成立执行的表达式 : 条件不成立执行的表达式
let xiaoming:number=96
let xiaohong:number=97
let num:number=xiaoming > xiaohong ? xiaoming : xiaohong
console.log('最高分是',num)
@Entry
@Component
struct Index {
@State message: string = 'Hello World';
build() {
Row() {
Column() {
Text(this.message)
.fontSize(50)
.fontWeight(FontWeight.Bold)
}
.width('100%')
}
.height('100%')
}
}
2.条件渲染 ( 条件判断+UI渲染 )
使用 if else 和 else if , 可基于 不同的状态 渲染对应不同的UI内容
@Entry
@Component
struct Index {
//组件的状态变量
@State count:number=2
build() {
Column(){
if (this.count<18){
Text('你还是孩子,要好好学习')
}else if(this.count<=60){
Text('你是成年人')
}else{
Text('你是老年人')
}
Button('长大')
.onClick(()=>{
this.count+=5
})
Text(`当前年龄${this.count}`)
}
.width('100%')
.height('100%')
.backgroundColor('#eee')
.padding({top:15,right:15,left:15})
}
}
3.循环语句
在循环体里设置的变量, 只能在循环体利用, 在循环体外找不到
3.1 while循环语句
作用: 重复执行指定的一段代码
**循环三要素: **
- 初始值( 变量 )
- 循环条件
- 变化量 ( 变量计数, 自增或自减 )
3.2 for循环
执行逻辑:
//for 计算1-10的累加和
let j:number=0
for (let i:number=1;i<=10;i++){
j=j+i
} console.log(j.toString())
3.3 退出循环
作用: 满足条件, 可以退出循环
- break: 终止整个循环( 后面的循环不执行了 )
- continue: 退出当前一次循环执行, 继续执行本循环体的下一次循环
//需求1: 打印1-100的整数, 遇到7的倍数跳过
for(let i:number=1;i<=10;i++){
if(i%7==0){
console.log('跳过')
continue
}
console.log(i.toString())
}
//需求2: 打印1-100的整数,遇到20结束循环
for(let i:number=1;i<100;i++){
if(i==20){
console.log(i.toString())
break
}
console.log(i.toString())
}
4.遍历数组
4.1遍历数组的普通方法 - for循环+数组长度
遍历: 将数组里面的每一个数据, 按顺序访问一遍
4.2遍历数组的更简洁方法 - for...of
语法: for ( let item of 数组名){ }
- item: 声明的一个变量, 用来在循环的时候接收 每一个数组元素
- for...of: 在...之中 进行循环
for...of: 在...之中 进行循环
//第一步通过接口定义对象
interface student{
stuID:number,
name:string,
gender:string,
age:number
}
//基于接口创建数组对象
let stuShuZu:student[]=[
{stuID:1,name:'小明',gender:'高三',age:17},
{stuID:1,name:'大明',gender:'高三',age:19},
{stuID:1,name:'二明',gender:'高三',age:18},
{stuID:1,name:'天明',gender:'高三',age:17}
]
//使用数组, 因为数组对象不能直接在日志中显示,
//想要在日志中显示需要调用方法转成字符串
console.log('打印数组对象',stuShuZu)
//包含对象的复杂数据, 如果想在日志中打印,
//需要需要调用一个方法, 转成字符串
//JSON.stringify(复杂类型)对象/数值
console.log('打印数组对象',JSON.stringify(stuShuZu))
@Entry
@Component
struct Index {
//组件的状态变量
@State count:number=1
build() {
Column(){
}
.width('100%')
.height('100%')
.backgroundColor('#eee')
.padding({top:15,right:15,left:15})
}
}
©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
标签
已于2024-12-12 23:00:36修改
赞
收藏 1
回复
相关推荐