各位小伙伴们我们又见面了,我是鸿蒙开天组,下面让我们进入今天的学习,Harmony OS Next应用开发基础篇- 语句-分支-循环

语句:语句是程序执行的基本单位,它可以是一个表达式、赋值操作、函数调用等,代表了一个具体的操作指令。

分支:分支结构用于根据不同的条件来决定程序的执行路径。常见的分支结构有 if-else 语句,根据条件的真假来执行不同的代码块。还有 switch 语句,用于基于不同的枚举值或整数常量选择执行相应的代码分支。

循环:循环结构用于重复执行一段代码。例如 for 循环,通过指定循环的初始条件、结束条件和迭代步长来控制循环次数。while 循环在条件为真时重复执行代码块。do-while 循环则先执行一次代码块,然后在条件为真时继续循环。

这些结构使得开发者能够根据不同的逻辑和需求,灵活控制程序的流程和执行逻辑,从而实现各种复杂的功能。

分支语句

语句概念

  • 表达式: 可以被求值的代码,并将其计算出一个结果
  • 语句: 一段可以执行的代码,是一个行为,例如分 支语句和循环语句

If 分支

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

单分支
  • 小括号条件结果为 true,则执行大括号里面的代码
  • 小括号内的结果若不是布尔类型时,会发生类型转换为布尔值

下面展示一个案例来理解:

let score: number = 700

// 如果分数大于600分,提示“恭喜你,考入北京大学”
if (score > 600) {
  console.log('恭喜你,考入北京大学')
}

// 小括号内的结果若不是布尔类型时,会发生类型转换为布尔值
if ('hi') {
  console.log('hello world')
}

多学一招:如果大括号里面只有一条语句,可以省略大括号

双分支
下面展示一个案例来理解:
/*
if (条件) {
  条件成立执行的代码
} else {
  条件不成立执行的代码
}
*/


let score: number = 599

// 如果分数大于600分,提示“恭喜你,考入北京大学”; 否则提示再接再厉
if (score > 600) {
  console.log('恭喜你,考入北京大学')
} else {
  console.log('再接再厉')
}

下面展示一个综合案例来巩固一下:

需求:购物车商品数量大于0可以单击“-”按钮,否则提示:购物车已经空了,不能再减了

@Entry
@Component
struct Index {
  @State
  count: number = 1

  build() {
    Column() {
      Row() {
        Text('-')
          .width(20)
          .height(20)
          .border({width: 1, color: '#999', radius: {topLeft: 3, bottomLeft:3}})
          .textAlign(TextAlign.Center)
          .onClick(() => {
            if (this.count > 0) {
              this.count -= 1
            } else {
              AlertDialog.show({message: '购物车已经空啦,不能再减了'})
            }
          })

        Text(this.count.toString())
          .height(20)
          .padding({left: 10, right: 10})
          .border({width: {top: 1, bottom: 1}, color: '#999'})
          .fontSize(14)

        Text('+')
          .width(20)
          .height(20)
          .border({width: 1, color: '#999', radius: {topRight: 3, bottomRight: 3}})
          .textAlign(TextAlign.Center)
          .onClick(() => {
            this.count ++
          })
      }
    }
    .padding(20)
  }
}

多分支:

let score: number = 66

if (score >= 90) {
  console.log('优秀')
} else if (score >= 70) {
  console.log('良好')
} else if (score >= 60) {
  console.log('及格')
} else {
  console.log('不及格')
}

Switch 分支

 基础语法

注意:

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

下面展示一个案例来理解:

let fruit: string = '橘子'

switch (fruit) {
  case '苹果':
    console.log('苹果5元/斤')
    break
  case '橘子':
    console.log('橘子3元/斤')
    break
  default:
    console.log('不好意思,您查询的水果已售罄')
}

条件表达式

条件表达式又叫三元运算或三元表达式

@Entry
@Component
struct Index {
  @State
  btnFlag: boolean = false

  build() {

    Column() {
      Button(`${this.btnFlag ? '已关注' : '+ 关注'}`)
        .backgroundColor(`${this.btnFlag ? '#f60' : '#00f'}`)
        .onClick(() => {
          this.btnFlag = !this.btnFlag
        })
    }
      .padding(20)
  }
}

条件渲染

ArkTS提供了渲染控制的能力。条件渲染可根据应用的不同状态,使用ifelseelse if渲染对应状态下的UI内容。

ifelse if后跟随的条件语句可以使用状态变量,状态变量值变化时,条件渲染语句会进行更新。

循环语句

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

While 语句

Tips:循环三要素

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

下面展示一个案例来理解: 需求:10以内数字累加和

let sum: number = 0
let i: number = 1

// 累加 前两个数字之和 + 下一个数, sum = sum + i
while (i <= 10) {
  sum += i
  i++
}

// 输出结果
console.log('累加和是', sum)

For 语句

let sum:number = 0

for (let i = 1; i<= 10; i++) {
  if (i % 2 == 0) {
    sum += i
  }
}

console.log('累加和是', sum)

退出循环

作用:满足指定条件退出循环的方式

  • break:终止循环
  • continue: 退出当前一次循环的执行,继续执行下一次循环

下面展示一个案例来理解:

/*
for (let i = 1; i <= 5; i++) {
  if (i == 3) {
    console.log('吃饱了,不吃了')
    // 终止循环
    break
  }
  console.log(`正在吃第${i}个苹果`)
}
*/

for (let i = 1; i <= 5; i++) {
  if (i == 3) {
    console.log('吃饱了,不吃了')
    continue
  }
  console.log(`正在吃第${i}个苹果`)
}

遍历数组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)
}

案例-数组元素求和

// 求出下列数组元素的累加和

[22, 3, 44, 55, 80]

思路分析

  • 声明一个变量初始值为 0 ,保存最终的累加和结果
  • 遍历数组, 访问每一个数组元素, 与结果变量累加
  • 输出最终的求和结果

下面展示一个案例来理解:

let arr: number[] = [22, 3, 44, 55, 80]

// 1. 声明保存结果的变量
let sum: number = 0

// 2. 遍历数组,进行累加
for (const item of arr) {
  sum += item
}

// 3. 输出结果
console.log('累加和为', sum)

案例 - 筛选数组中大于等于10的元素

// 筛选出下列数组元素中大于等于10的数据

[22, 3, 44, 55, 80, 10, 11, 5, -1]

 思路分析

  • 声明一个变量, 初始值为 [ ], 用来保存最终的筛选结果
  • 遍历数组, 将数组每一个元素都与 10 进行比较,
    • 满足条件 推入 结果变量
    • 不满足条件 不做任何处理 执行下一次循环
  • 输出最终的结果

下面展示一个案例来理解:

let arr: number[] = [22, 3, 44, 55, 80, 10, 11, 5, -1]

// 1. 声明新数组
let newArr: number[] = []

// 2. 遍历数组,将大于10的数据新增到 newArr
for (const item of arr) {
  if (item >= 10) {
    newArr.push(item)
  }
}

console.log('新数组是', newArr)

下面展示一个案例来试炼:

// 统计数组中大于0数字个数

[22, 3, 0, 55, 0, 0, 11, 5, 0]

let arr: number[] = [22, 3, 0, 55, 0, 0, 11, 5, 0]

let count: number = 0
for (const item of arr) {
  if(item > 0) {
    count += 1
  }
}

console.log('大于0的数字个数是', count)

以上是关于鸿蒙基础篇-语句-分支-循环 综合的一些内容,方便大家学习,至此,关于鸿蒙基础篇-语句-分支-循环 综合的内容就介绍到这里,愿您能学以致用,开发出精彩的鸿蒙应用!

以上内容仅供学习交流,如有违法或者侵权可以联系删除。

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐