简化条件表达式


1. 分解条件表达式
if (isUp(case) || isLeft(case)) 
    num = a * b;
else num = a * c;
更改为↓
if (isTrue(case)) 
    numberB(a);
else numberC(a);

boolean isTrue(case) {
    return isUp(case) || isLeft(case);
}

int numberB(a) {
    return a + b;
}

int numberC(a) {
    return a + c;
}

2. 合并条件表达式

double disabukutyAmount() {
    if (_seniority < 2) return 0;
    if (_monbtdiable > 12) return 0;
    if (_isPartyTime) retutn 0;
}
更改为↓
double disablilityAmount() {
    if (isNotEligibleForDisability()) return 0;
}


boolean isNotEligibleForDisability() {
    return _seniority < 2 || _monbtdiable > 12 || _isPartyTime;
}


3. 合并重复的条件片段


有时候你可能会在if else 语句中写重复的语句,这时候你需要将重复的语句抽出来。
if (isSpecialDeal()) {
    total = price * 0.95;
    send();
} else {
    total = price * 0.98;
    send();
}
更改为↓
if (isSpecialDeal())
    total = price * 0.95;
else
    total = price * 0.98;

send();

4.移除控制标记
5. 以卫语句取代嵌套表达式

加入return语句去掉else语句。
if (a > 0) result = a + b;
else {
    if (b > 0) result = a + c;
    else {
        result = a + d;
    }
}
return result;
更改为↓
if (a > 0) return a + b;
if (b > 0) return a + c;
return a + d;

6. 以多态取代switch语句
将条件表达式的每个分支放入一个子类的覆写函数中,将原始函数声明为抽象函数
int getArea() {
    switch (_shap)
        case circle:
            return 3.14 * _r * _r; break;
        case rect;
            return _width + _heigth;
}
更改为↓
class Shap {
    int getArea(){};
}


class Circle extends Shap {
    int getArea() {
        return 3.14 * _r * _r; break;
    }
}


class Rect extends Shap {
    int getArea() {
        return _width + _heigth;
    }
}

7.引入null对象

需要检查对象是否为空,将null值替换为null对象

if(customer == null){
			plan=BillingPlan.basic();
		}else{
			plan = customer.getPlan();
		}

做法:

为源类建立一个子类,使其行为就像是源类的null版本,在源类和null子类中都加上isNUll()函数,牵着的isNull返回false,后者的返回true

建立一个nullable接口,把isnull函数放入,源类实现。

 8.引入断言

某一段代码需要对程序状态做出某种假设,以断言明确表现这种假设。

double getExpenseLimit(){
		return (expenseLimit !=NULL_EXPENSE )?expenseLimit:primaryProject.getMemberExpenseLimit;
		}
		double getExpenseLimit(){
			Assert.isTrue(expenseLimit !=NULL_EXPENSE&&primaryProject!=null);
			return (expenseLimit !=NULL_EXPENSE )?expenseLimit:primaryProject.getMemberExpenseL
		}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python 中的条件表达式又称为三元表达式,由三个操作数组成,格式如下: ``` x if condition else y ``` 其中,`condition` 为条件表达式,如果该表达式的值为 `True`,则返回 `x` 的值,否则返回 `y` 的值。 例如: ``` x = 5 y = 10 max_num = x if x > y else y print(max_num) # 输出 10 ``` 在上面的例子中,如果 `x` 大于 `y`,则 `max_num` 的值为 `x` 的值 5,否则 `max_num` 的值为 `y` 的值 10。 ### 回答2: Python条件表达式又被称为三元操作符,它是一种简洁而方便的表达式形式,可以在一行代码中实现简单的条件判断。 Python条件表达式的一般形式是:`result = true_value if condition else false_value`。 其中,`condition`是一个布尔表达式,如果`condition`为真,则返回`true_value`,否则返回`false_value`。 举个例子来说明,比如我们需要根据一个数字的正负来判断它的绝对值,可以使用条件表达式实现: ```Python num = -5 abs_value = num if num >= 0 else -num print(abs_value) # 输出:5 ``` 在上面的代码中,我们首先对变量`num`进行判断,如果`num`大于等于0,则返回`num`的值,即正数;如果`num`小于0,则返回`-num`,即绝对值。最后将结果赋给变量`abs_value`并打印出来。 条件表达式在简单的条件判断中非常有用,可以大大简化代码的书写,提高代码的可读性和简洁性。但需要注意的是,条件表达式不适合用于复杂的条件判断,可以使用传统的if-else语句来处理复杂情况。 ### 回答3: Python中的条件表达式是一种简洁的语法结构,用于在一行代码中表示一个条件判断的结果。 条件表达式的一般形式为:value_if_true if condition else value_if_false。 其中,condition是一个布尔表达式,如果为真,则返回value_if_true;否则,返回value_if_false。 这种语法结构的好处是能够通过一行代码完成简单的条件判断,避免了写if-else语句时的冗余。 例如,我们希望根据一个数的正负情况返回相应的结果,可以使用条件表达式: result = "正数" if num > 0 else "负数" 在这个例子中,如果num大于0,条件表达式的结果为"正数",否则为"负数"。 除了简洁性外,条件表达式还具有其他特点,比如可以嵌套使用: result = "正数" if num > 0 else ("负数" if num < 0 else "零") 这个表达式根据num的值来返回"正数"、"负数"或"零",并且在多个条件判断时也能保持代码的简洁性。 需要注意的是,条件表达式并不适用于复杂的条件判断,如果条件需要多个判断语句,或者需要执行多个语句块,建议使用if-else语句。 总的来说,Python的条件表达式是一种简洁而强大的语法结构,适用于简单的条件判断,能够提高代码的可读性和简洁性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值