首页 > 其他分享 >鸿蒙基础篇-语句-分支-循环

鸿蒙基础篇-语句-分支-循环

时间:2024-10-28 21:15:53浏览次数:5  
标签:语句 console log 鸿蒙 number 循环 let 分支

“在科技的浪潮中,鸿蒙操作系统宛如一颗璀璨的新星,引领着创新的方向。作为鸿蒙开天组,今天我们将一同踏上鸿蒙基础的探索之旅,为您揭开这一神奇系统的神秘面纱。”

各位小伙伴们我们又见面了,我就是鸿蒙开天组,下面让我们进入今天的学习,鸿蒙基础篇-进阶布局

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

分支:分支结构用于根据不同的条件来决定程序的执行路径。常见的分支结构有 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)

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

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

标签:语句,console,log,鸿蒙,number,循环,let,分支
From: https://blog.csdn.net/2401_88463044/article/details/143313423

相关文章

  • C#学习 [程序结构] 顶级语句(9)
    代码与输出命名空间与类型定义usingConsoleApp1.basic;FibonacciSequence.Run(20);MyClass.Hello();MyNameSpace.MyClass.Hello();if(args.Length>0){Console.WriteLine("args的数目大于0.");}else{Console.WriteLine("args的数目为0.");}pub......
  • 背包问题-分支限界法求解
    此为课题组所指导本科生和低年级硕士生学习组合优化问题汇报所用教材:北京大学屈婉玲教授《算法设计与分析》课程资料:https://www.icourse163.org/course/PKU-1002525003承诺不用于任何商业用途,仅用于学术交流和分享更多内容请关注许志伟课题组官方中文主页:https://JaywayXu.g......
  • 鸿蒙NEXT开发-应用数据持久化之用户首选项(基于最新api12稳定版)
    注意:博主有个鸿蒙专栏,里面从上到下有关于鸿蒙next的教学文档,大家感兴趣可以学习下如果大家觉得博主文章写的好的话,可以点下关注,博主会一直更新鸿蒙next相关知识专栏地址:https://blog.csdn.net/qq_56760790/category_12794123.html目录1.应用数据持久化2.应用数据持久......
  • IDEA如何快速复制日志生成sql语句,太妙啦
    前言我们在使用IDEA开发Java应用时,一般来说,是使用springboot+mybatis的框架。同时,开发过程中,遇到BUG在所难免。其中,有一类BUG就是数据库的报错。正常来说,我们本地调试时,都会在日志里面打印出对应的sql日志,但这类日志我们不能直接使用,因为还可能有一些参数在填充,我们得复制所有的......
  • 鸿蒙跨设备协同开发08——使用分布式数据对象接续应用
    如果你也对鸿蒙开发感兴趣,加入“Harmony自习室”吧!扫描下方名片,关注公众号,公众号更新更快,同时也有更多学习资料和技术讨论群。1、前言本文是基于鸿蒙跨设备协同开发07——动态控制应用接续的进一步讨论。我们在鸿蒙跨设备协同开发06——应用接续中有提到:为了接续体验,在o......
  • 鸿蒙Harmony OS Next原生开发TS基本数据类型
    鸿蒙初开,开天辟地TS语法之变量书接上文,在TS中,我们常用的数据类型有1.number表示数字,包括浮点数和整数在内leta:number=100;letb:number=-33;letc:number=2.5;console.log(a)console.log(b)console.log(c)console.log(typeofc)leta:number=100;letb:number......
  • 鸿蒙网络编程系列36-固定包头可变包体解决TCP粘包问题
    1.TCP数据传输粘包简介在本系列的第6篇文章《鸿蒙网络编程系列6-TCP数据粘包表现及原因分析》中,我们演示了TCP数据粘包的表现,如图所示:随后解释了粘包背后的可能原因,并给出了解决TCP传输粘包问题的两种思路,第一种是指定数据包结束标志,在本系列第35篇《鸿蒙网络编程系列35......
  • 鸿蒙多环境配置(一)
    在实际开发过程中,你是否遇到了如下一些问题。项目分多套环境,如开发环境,生产环境,甚至还有灰度环境,不同的环境请求的服务器地址不一样,不同环境依赖的库也不一样,使用的三库key也不一样。测试会问开发环境的包和生产环境的包可以同时安装在手机上吗,我怎么区分哪个是生产环境的包,开发环......
  • 「Mac畅玩鸿蒙与硬件9」鸿蒙开发环境配置篇9 - 使用 Git 进行版本控制
    在HarmonyOS项目开发中,Git版本控制可以帮助开发者规范地管理代码变更,确保协作流程顺畅。本篇将详细介绍从创建项目、提交代码到Git远程仓库,再到修改、推送更新的完整操作流程,重点演示如何使用Git和GitHub进行身份验证和版本管理。关键词版本控制Git基础操作本地......
  • IDEA如何将一个分支的代码合并到另一个分支(当前分支)
    前言我们在使用IDEA开发Java应用时,经常是和git一起使用的。我们对于git常用的操作包括提交,推送,拉取代码等。还有一个重要的功能是合并代码。那么,我们应该如何合并代码呢?如何合并代码首先,我们选择当前的代码分支,点击一下。然后,我们点击下需要合并过来的分支,在二级菜单里面,点......