HarmonyOS NEXT条件语句和循环迭代
条件语句 使用规则
- 支持if、else和else if语句。
- if、else if后跟随的条件语句可以使用状态变量或者常规变量(状态变量:值的改变可以实时渲染UI,常规变量:值的改变不会实时渲染UI)。
- 允许在容器组件内使用,通过条件渲染语句构建不同的子组件。
- 条件渲染语句在涉及到组件的父子关系时是“透明”的,当父组件和子组件之间存在一个或多个if语句时,必须遵守父组件关于子组件使用的规则。
- 每个分支内部的构建函数必须遵循构建函数的规则,并创建一个或多个组件。无法创建组件的空构建函数会产生语法错误。
- 某些容器组件限制子组件的类型或数量,将条件渲染语句用于这些组件内时,这些限制将同样应用于条件渲染语句内创建的组件。例如,Grid容器组件的子组件仅支持GridItem组件,在Grid内使用条件渲染语句时,条件渲染语句内仅允许使用GridItem组件。
if语句
let num:number = 5
if (num > 0) {
console.log('此数字大于0')
}
if (num % 2==0) {
console.log(num+' 是偶数');
} else {
console.log(num+' 是奇数');
}
if(num > 0) {
console.log(num+' 是正数')
} else if(num < 0) {
console.log(num+' 是负数')
} else {
console.log(num+' 既不是正数也不是负数')
}
switch…case 语句
let grade:string = 'A';
switch(grade) {
case 'A': {
console.log('优');
break;
}
case 'B': {
console.log('良');
break;
}
case 'C': {
console.log('及格');
break;
}
case 'D': {
console.log('不及格');
break;
}
default: {
console.log('非法输入');
break;
}
}
循环迭代 当一个对象实现了Symbol.iterator属性时,我们认为它是可迭代的。一些内置的类型如Array,Map,Set,String,Int32Array,Uint32Array等都具有可迭代性。
let list = ["红色", "黄色", "绿色"];
// 索引→ 0 1 2
//while
console.log("--------while--------");
let i=0;
while(i<list.length){
console.log(i+":"+list[i]); // 0:红色,1:黄色,2:绿色
i++;// i=i+1
}
//do while 至少执行一次
console.log("--------do while--------");
i=0;
do{
console.log(i+":"+list[i]); // 0:红色,1:黄色,2:绿色
i++;
}while(i<list.length);
//for
console.log("--------for--------");
for(let i=0;i<list.length;i++){
console.log(i+":"+list[i]); // 0:红色,1:黄色,2:绿色
}
//for in
console.log("--------for in--------");
for(let index in list) {
console.log(index+":"+list[index]); // 0:红色,1:黄色,2:绿色
}
//for of
console.log("--------for of--------");
for(let item of list) {
console.log(item); // 红色,黄色,绿色
}