1.switch 语法用法
switch是对某个表达式的值做出判断。然后决定程序执行哪一段代码
case语句中指定的每个值必须具有与表达式兼容的类型
语法switch(表达式){
case 值1:
执行语句块1
break;
case 值2:
执行语句块3
break;
dfault:
//如果以上所有case都不匹配,执行默认语句块
}
如:
// 买彩票
//中100万 买五菱
// 中50万 买雅迪电车
// 中10万 买捷安特
// 中10块 买个冰棍
// 其他 买个锤子
let money: number = 10;
switch (money) {
case 1000000:
console.log('买五菱');
break;
case 500000:
console.log('买雅迪');
break;
case 100000:
console.log('买捷安特');
break;
case 10:
console.log('买个冰棍');
break;
default:
console.log('买个锤子');
}
switch语句的执行顺序是,首先计算表达式的值,然后将该值与每一个case的值进行比较,如果找到匹配的case,则执行该case下的语句,直到遇到break语句或Switch语句结束。如果没有找到匹配的case,且存在default子句,就执行default。
2.剪刀石头布
2.1 页面
2.2变量
// 定义变量
@State userCz:string=''//用户初中
@State comCz:string=''//电脑出招
@State res:string=''//结果
@State uY:number=0//用户赢的次数
@State cY:number=0//电脑赢次数
@State pY:number=0//平局
@State isJ:boolean=false//选中状态
@State isS:boolean=false//选中状态
@State isB:boolean=false//选中状态
2.3处理用户出招
Row(){
Radio({value:'剪刀',group:'gm'})
.onChange((isChecked:boolean)=>{
promptAction.showToast({message:`剪刀:${isChecked}`})
this.userCz='剪刀'
// this.isC=isChecked
this.isJ=isChecked
})
.checked(this.isJ)
Text('剪刀').fontSize(30)
Radio({value:'石头',group:'gm'})
.onChange((isChecked:boolean)=>{
promptAction.showToast({message:`石头:${isChecked}`})
this.userCz='石头'
// this.isC=isChecked
this.isS=isChecked
})
.checked(this.isS)
Text('石头').fontSize(30)
Radio({value:'布',group:'gm'})//group:分组
.onChange((isChecked:boolean)=>{
promptAction.showToast({message:`布:${isChecked}`})
this.userCz='布'
// this.isC=isChecked
this.isB=isChecked
})
.checked(this.isB)
Text('布').fontSize(30)
}.width('100%')
.height(50)
.justifyContent(FlexAlign.SpaceBetween)
2.4电脑出招
Button('电脑出招')
.onClick(()=>{
//用户出招了
if(this.userCz!==''){
// Math.random() 产生0~1之间的一个小数
//0剪刀 1石头 2布
let num:number=parseInt(`${Math.random()*3}`)
// promptAction.showToast({message:`${num}`})
switch (num){
case 0:
this.comCz='剪刀'
break;
case 1:
this.comCz='石头'
break;
case 2:
this.comCz='布'
break;
}
2.5数据统计
Text(`赢:${this.uY}`).fontSize(30).fontColor("red").width('40%')
Text(`败:${this.cY}`).fontSize(30).fontColor("red").width('40%')
Text(`平:${this.pY}`).fontSize(30).fontColor("red").width('40%')
Text(`总:${this.uY+this.cY+this.pY}`).fontSize(30).fontColor("red").width('40%')
// Text(`胜率:${this.uY/(this.uY+this.cY+this.pY)}`).fontSize(30).fontColor("red").width('40%')
Text(`胜率:${this.uY}/${(this.uY+this.cY+this.pY)}`).fontSize(30).fontColor("red").width('40%')
2.6重新开始
Button('重新开始')
.onClick(()=>{
//清零 重新初始化
this.userCz=''
this.comCz=''
this.res=''
this.uY=0
this.cY=0
this.pY=0
//初始化单选的选项
this.isJ=false
this.isS=false
this.isB=false
})