多重if-else的精简方式

本文探讨了使用逻辑运算符&&、||及三目运算符替代传统if-else语句的方法,以此来简化代码结构,提高代码的可读性和效率。通过实例展示了如何利用短路原理避免不必要的计算,同时注意避免将特定值视为布尔假值。

实际逻辑情况:当需要多重if-else时,我们通常会面对比较复杂的代码

例如:

var custAtten = '';
if(str=='1'){
    custAtten='<span class="cust-xxx">黑</span>';
}else if(str=='2'){
    custAtten='<span class="cust-xxx">灰</span>';
}else if(str=='12'){
    custAtten='<span class="cust-xxx">展</span>';
}else{
    custAtten='';
}
return custAtten;

让代码组织比较“庞大”?

而通过采用&&、||、或者三目运算符的方式搭配,我们可以得到精简度更高的代码结构

var num = '12';
var str1 = '<span class="cust-xxx">黑</span>';
var str2 = '<span class="cust-xxx">灰</span>';
var str3 = '<span class="cust-xxx">展</span>';
var str = (num=='1'&&str1) ||(num=='2'&&str2)||(num=='12'&&str3)||'';
console.log(str);

或者

var add_step2= 2;
var str1 = '<span class="cust-xxx">黑</span>';
var str2 = '<span class="cust-xxx">灰</span>';
var str3 = '<span class="cust-xxx">展</span>';
var add_level2 = {'1':str1,'2':str2,'12':str3}[add_step2]||0;
console.log(add_level2);

的方式去减缩相关结构组织;

 

原理:

语言中||和&&都遵循“短路”原理;

如&&中第一个表达式为假就不会去处理后续表达式

而||正好相反,当第一个表达式为假时,仍然会处理后续表达式。

避免:

回避0、”“、null、false、undefined、NaN;它们都会被转换为false

以下例子:

console.log(Boolean(0));    //false
console.log(Boolean('')); //false
console.log(Boolean(null)); //false
console.log(Boolean(1)); //true
console.log(Boolean(undefined)); //false
console.log(Boolean(NaN)); //false

 

if(MIMO==2) { if(ui->bw1p4->isChecked()) { if(ui->cfi->currentText()=="1(1 PDCCH symbol)") {cfiper=0.2714;} else if(ui->cfi->currentText()=="2(2 PDCCH symbols)") { {cfiper=0.3428;} } else if(ui->cfi->currentText()=="3(3 PDCCH symbols)") { {cfiper=0.4142;} } } else if(ui->bw3->isChecked()) { if(ui->cfi->currentText()=="1(1 PDCCH symbol)") {cfiper=0.1657;} else if(ui->cfi->currentText()=="2(2 PDCCH symbols)") { {cfiper=0.2371;} } else if(ui->cfi->currentText()=="3(3 PDCCH symbols)") { {cfiper=0.3085;} } } else if(ui->bw5->isChecked()) { if(ui->cfi->currentText()=="1(1 PDCCH symbol)") {cfiper=0.1565;} else if(ui->cfi->currentText()=="2(2 PDCCH symbols)") { {cfiper=0.228;} } else if(ui->cfi->currentText()=="3(3 PDCCH symbols)") { {cfiper=0.2994;} } } else if(ui->bw10->isChecked()) { if(ui->cfi->currentText()=="1(1 PDCCH symbol)") {cfiper=0.1497;} else if(ui->cfi->currentText()=="2(2 PDCCH symbols)") { {cfiper=0.2211;} } else if(ui->cfi->currentText()=="3(3 PDCCH symbols)") { {cfiper=0.2925;} } } else if(ui->bw15->isChecked()) { if(ui->cfi->currentText()=="1(1 PDCCH symbol)") {cfiper=0.1474;} else if(ui->cfi->currentText()=="2(2 PDCCH symbols)") { {cfiper=0.2188;} } else if(ui->cfi->currentText()=="3(3 PDCCH symbols)") { {cfiper=0.2902;} } } else if(ui->bw20->isChecked()) { if(ui->cfi->currentText()=="1(1 PDCCH symbol)") {cfiper=0.1462;} else if(ui->cfi->currentText()=="2(2 PDCCH symbols)") { {cfiper=0.2177;} } else if(ui->cfi->currentText()=="3(3 PDCCH symbols)") { {cfiper=0.2891;} } } } else if(MIMO==1) { } else { //xxxx }精简代码
最新发布
08-21
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值