七、ArkTS-语句-分支-循环 原创

亚鲁鲁666
发布于 2024-12-10 21:40
浏览
1收藏

1.语句的概念

语句概念: 一段可以一段可以执行的代码, 是一个行为(num=a+b)

表达式: 可以被求职的一段代码, 将其计算出一个结果(1+1)

七、ArkTS-语句-分支-循环-鸿蒙开发者社区

2.分支语句

2.1 If分支

if 语句用于需要根据逻辑条件执行不同语句的场景。当逻辑条件为真时,执行对应的一组语句。

2.1.1 if(){}-单分支

单分支 ( 满足条件,就会执行一段代码 )

七、ArkTS-语句-分支-循环-鸿蒙开发者社区

  • 小括号条件结果为 true,则执行大括号里面的代码
  • 小括号内的结果若不是布尔类型时,会自动发生数据类型的隐式转换为布尔值* ArkTS与JS都有数据类型的隐式转换* ->false, 0, '', undefined, null进行逻辑计算的售后,会被隐式转换为false* ->除了以上几个**,其他的都为true**
2.1.2 if(){}else{}-双分支

双分支 ( 满足条件, 就会执行A代码, 不满足会执行B代码 )

七、ArkTS-语句-分支-循环-鸿蒙开发者社区

​AlerDialog.show({message:'最小值为1,不能再减了'}) //文本提示框​

2.1.3 if(){}else fi{}...else -多分支

if 多分支, 可以解决多种分支的情况

七、ArkTS-语句-分支-循环-鸿蒙开发者社区

2.2Switch分支

switch分支一般用于精确匹配, 不同的执行不同的代码

七、ArkTS-语句-分支-循环-鸿蒙开发者社区

注意:** 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三元条件表达式

语法: 条件 ? 条件成立执行的表达式 : 条件不成立执行的表达式

七、ArkTS-语句-分支-循环-鸿蒙开发者社区

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内容

七、ArkTS-语句-分支-循环-鸿蒙开发者社区

@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循环语句

作用: 重复执行指定的一段代码

七、ArkTS-语句-分支-循环-鸿蒙开发者社区

**循环三要素: **

  1. 初始值( 变量 )
  2. 循环条件
  3. 变化量 ( 变量计数, 自增或自减 )

3.2 for循环

七、ArkTS-语句-分支-循环-鸿蒙开发者社区

执行逻辑:

七、ArkTS-语句-分支-循环-鸿蒙开发者社区

//for 计算1-10的累加和
let j:number=0
for (let i:number=1;i<=10;i++){
  j=j+i
}  console.log(j.toString())

3.3 退出循环

作用: 满足条件, 可以退出循环

  1. break: 终止整个循环( 后面的循环不执行了 )
  2. continue: 退出当前一次循环执行, 继续执行本循环体的下一次循环

七、ArkTS-语句-分支-循环-鸿蒙开发者社区

//需求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循环+数组长度

遍历: 将数组里面的每一个数据, 按顺序访问一遍

七、ArkTS-语句-分支-循环-鸿蒙开发者社区

4.2遍历数组的更简洁方法 - for...of

语法: for ( let item of 数组名){ }

  1. item: 声明的一个变量, 用来在循环的时候接收 每一个数组元素
  2. for...of: 在...之中 进行循环

for...of: 在...之中 进行循环

七、ArkTS-语句-分支-循环-鸿蒙开发者社区

//第一步通过接口定义对象
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
回复
举报
回复
    相关推荐