if else if else return

本文解析了Yiidemo中的authenticate认证函数实现细节,展示了如何通过条件判断进行用户身份验证,包括用户名和密码的校验过程。
public function authenticate()
    {
        $user=User::model()->find('LOWER(username)=?',array(strtolower($this->username)));
        if($user===null)
            $this->errorCode=self::ERROR_USERNAME_INVALID;
        else if(!$user->validatePassword($this->password))
            $this->errorCode=self::ERROR_PASSWORD_INVALID;
        else
        {
            $this->_id=$user->id;
            $this->username=$user->username;
            $this->errorCode=self::ERROR_NONE;
        }
        return $this->errorCode==self::ERROR_NONE;
    }

yii demo里的authenticate函数,这里条件逻辑执行过程中,retuan 语句是在前面的if和else if 都不成立,最后一个else成立的时候才retuan.并不是每执行一个条件都retuan.

好奇怪的条件逻辑语法, 学习了!


转载于:https://my.oschina.net/u/873762/blog/313195

### C++ 中 `if-return` 和 `if-else` 的用法及区别 #### 使用场景与基本形式 在C++中,`if-return` 结构通常用于满足某个条件时立即返回函数的结果。这种结构简化了代码路径,在某些情况下可以使程序更加清晰易读。 ```cpp int getValue(bool condition) { if (condition) { return 10; } // 继续其他逻辑... } ``` 相比之下,`if-else` 提供了一种更为完整的分支选择方式,允许定义当条件成立和不成立两种情况下的不同行为[^2]。 ```cpp int getValue(bool condition) { if (condition) { return 10; } else { return 20; } } ``` #### 关键差异 主要的不同在于: - **单一出口 vs 双向决策**:`if-return` 主要适用于只需要在一个条件下提前退出的情形;而 `if-else` 则能更好地处理存在对立选项的选择问题。 - **可维护性和可读性**:对于简单的真/假判断,两者都可以很好地工作。但在面对复杂的业务逻辑时,`if-else` 更容易理解和维护,因为它显式地标明了所有可能的执行路径[^3]。 - **性能影响**:理论上讲,由于减少了额外的一次跳转指令,`if-return` 可能在极少数情况下具有轻微的速度优势。然而实际开发中这点差距几乎可以忽略不计,更重要的是保持代码风格一致性和良好的设计原则。 #### 高级应用场景 除了基础用途外,这两种结构还可以与其他控制流元素组合起来解决更复杂的问题。例如利用三元运算符作为紧凑版的 `if-else` 替代方案,或是借助布尔表达式的短路求值特性优化多重条件检查效率。 ```cpp // 使用三元运算符代替简单 if-else return condition ? value_if_true : value_if_false; // 利用 && 运算符实现高效的多条件验证 if (ptr != nullptr && ptr->isValid()) { /* ... */ } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值