ArkTS分支及循环语句
本文介绍了ArkTS编程语言中的基本运算符和程序结构。内容包括:1)数学运算符(加减乘除取余)的使用示例;2)赋值运算符的运算规则;3)比较运算符的类型和区别;4)逻辑运算符的特殊执行机制。重点讲解了程序三大结构(顺序、分支、循环),详细说明了if语句、switch语句的用法,并提供了数字排序案例。循环部分涵盖while、do-while和for循环,通过求最大公约数和随机数生成等实例演示循环控制
运算符
数学运算符(+、-、*、/、%)
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
比较运算符(>、<、>=、<=、==、!=、===、!==)
- >——大于
- <——小于
- >=——大于等于
- 符号左边 大于或者等于 右边为true
- <=——小于等于
- 符号左边 小于或者等于 右边为true
- ==——等于
- 符号两边在不考虑数据类型的情况下,只要值相等即为true
- ===——等等于
- 必须符号两边的值和数据类型 都一样,才能返回true
- !=——不等于
- 比较符号两边的内容,在不考虑数据类型的情况下,值是否不等
- !==——不等等
- 比较符号两边的内容是否不全等(包括数据类型)
逻辑运算符(&& 、||、!)
- &&——与(并且)
- 符号两边的表达式都为true的时候,最终结果为true
- 只要符号任意一边结果为false ,最终结果为false
- 同真为真,一假则假
- 特殊作用
- 当运算符左边为true 的时候,才会执行右边的代码
- 当运算符左边为false,那么右边的代码不会执行
- | |——或(或者)
- 符号两边的表达式任意一边为true的时候,最终结果为true
- 只有符号两边结果都为false ,最终结果为false
- 一真为真,同假则假
- 特殊作用
- 当运算符左边为true 的时候,右边的代码不会执行
- 当运算符左边为false,那么右边的代码才会执行
- !——非(取反)
- 本身为true,结果为false
- 本身为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
更多推荐



所有评论(0)