运算符

数学运算符(+、-、*、/、%)

let a:number = 1
let b:number = 12
let rs:number = a + b
console.log('输出结果:',rs)
console.log('输出结果:',a - b)
console.log('输出结果:',a * b)
console.log('输出结果:',a / b)
console.log('输出结果:',a % b)
console.log('--------')
console.log( '' , 1 + 1) // 2
console.log(1 + "1") // 11
console.log('----取余----')
console.log('输出结果:',1 % 2) // 1
console.log('输出结果:',2 % 2) // 0
console.log('输出结果:',3 % 2) // 1
console.log('输出结果:',4 % 2) // 0
console.log('输出结果:',5 % 2) // 1
console.log('输出结果:',a + b * b)

赋值运算符(=、+=、-=、*=、/=)

明确:在 ArkTS中一个等号是赋值

举例:let 变量名 = 值 // 将 = 右边的数据 放到 左边的 变量中/仓库中

// let temp:number = 1;
// temp += 6; // temp = temp + 6
// console.log('',temp) // 7
let temp:number = 2
temp *= 5 // temp = temp * 5
console.log('',temp) // 10

比较运算符(>、<、>=、<=、==、!=、===、!==)

  1. >——大于
  2. <——小于
  3. >=——大于等于
    • 符号左边 大于或者等于 右边为true
  4. <=——小于等于
    • 符号左边 小于或者等于 右边为true
  5. ==——等于
    • 符号两边在不考虑数据类型的情况下,只要值相等即为true
  6. ===——等等于
    • 必须符号两边的值和数据类型 都一样,才能返回true
  7. !=——不等于
    • 比较符号两边的内容,在不考虑数据类型的情况下,值是否不等
  8. !==——不等等
    • 比较符号两边的内容是否不全等(包括数据类型)

逻辑运算符(&& 、||、!)

  1. &&——与(并且)
    1. 符号两边的表达式都为true的时候,最终结果为true
    2. 只要符号任意一边结果为false ,最终结果为false
    3. 同真为真,一假则假
    4. 特殊作用
      • 当运算符左边为true 的时候,才会执行右边的代码
      • 当运算符左边为false,那么右边的代码不会执行
  2. | |——或(或者)
    1. 符号两边的表达式任意一边为true的时候,最终结果为true
    2. 只有符号两边结果都为false ,最终结果为false
    3. 一真为真,同假则假
    4. 特殊作用
      • 当运算符左边为true 的时候,右边的代码不会执行
      • 当运算符左边为false,那么右边的代码才会执行
  3. !——非(取反)
    1. 本身为true,结果为false
    2. 本身为false,结果为true

程序三大结构——顺序结构,分支结构(选择结构),循环结构

ArkTS分支语句

If语句(单分支)

if (条件) {
// 代码 当条件成立的时候就会执行大括号里面的代码
// if (3>5) { // 比较运算符返回布尔 假的false 不成立}
// if (null) { // 底层会转换为布尔类型 Boolean(null) false}
}

if else语句(双分支)

if (条件) {
// 条件成立 执行第一个大括号代码
} else {
// 条件不成立 执行第二个大括号代码
}

if else if … else 语句 (多选一多分支)

if (条件1) {
// 条件1,成立执行
} else if (条件2) {
// 条件2,成立执行
} else if (条件3) {
// 条件3,成立执行
}...else {
// 以上条件都不成立执行
}


  Button("排序").onClick((event: ClickEvent) => {
    // console.log("",num1>num2?num1>num3?num1:num3:num2>num3?num2:num3)

    if(this.num1>this.num2){
      this.temp1 = this.num1;
      this.num1 = this.num2;
      this.num2 = this.temp1
    }
    if(this.num1>this.num3){
      this.temp1 = this.num1;
      this.num1 = this.num3;
      this.num3 = this.temp1
    }
    if(this.num2>this.num3){
      this.temp1 = this.num2;
      this.num2 = this.num3;
      this.num3 = this.temp1
    }
    console.log("",this.num1,this.num2,this.num3)

  })

以上代码为将三个数从大到小排序,先比较第一个和第二个,将较大的数字放在后面,再比较第一个和第三个,将较大的数字放在后面,最后比较第一个和第三个,将较大的数字放在后面,该方法为简单的选择排序

switch语句

switch (数据 6)
{
case 值1 3:
// 值1成立,执行的代码
break // 退出switch 不写 case穿透 后面所有代码都执行一次
case 值2 6:
// 值2成立,执行的代码
break
case 值3 7:
// 值3成立,执行的代码
break

default:
// 以上都不成立执行的代码
}

case后只能写number类型
不写break会执行后面case的代码

ArkTS循环语句

while循环

while (条件) {
// 只要条件为真,就会执行括号里面的代码
}

eg:求最大公约数

TextInput({text:$$this.num1})
     TextInput({text:$$this.num2})
     Button('公约数').onClick((event: ClickEvent) => {
       let num11 = Number(this.num1)

       let num21 = Number(this.num2)
       let min = 2
     let min1 = num11<num21?num11:num21
       let yue = 2
       while(min<=min1){
         if(num11 % min == 0 && num21 % min == 0){
           yue = min;

         }
         min++
       }
       console.log("",yue)

     })

定义yue变量存储公约数,循环从2开始的数字到两个数的最小值,如果能被两数整除就将该数赋给变量yue,最后得出的公约数即为最大公约数

do while循环

do {
//先执行一遍括号里的代码,再判断条件是否成立
} while(条件)

 Column() {
      Button('随机数').onClick((event: ClickEvent) => {
        let n = 0
        do{
          n = Math.floor(Math.random()*10+1)

          if (n<5) {
            break
          }
          console.log('',n)
        }while (true)
      })
    }

输出随机数1-10,当随机数小于5时循环打破,Math.random()方法返回[0,1)之间的随机数,Math.floor()方法意为向下取整

for 循环

for (循环变量初始化; 条件; 更新) {
// 代码
}

Button('for').onClick((event: ClickEvent) => {
       let i = 0
       let sum = 0
       for(;i<=100;i++){
         // if(i%2==0){
         //   sum+=i;
         // }
         if(i%2!=0)continue
         sum+=i

       }
       console.log('',sum)
     })

求100以内所有奇数的和,省略了初始条件(初始条件写在了外面),用sum储存结果,如果在循环中遇到奇数(即i对2取余不等于0),则用continue跳过本次循环,不会执行sum+=i

Logo

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

更多推荐