[编码习惯]用while替代嵌套的if

时间:2021-12-24 20:00:51

举个例子

给出一个整数a
条件是:

  • a为正数
  • a小于60
  • a是奇数

的情况下,输出”yes”

最常见的写法无外乎下面这样

if (a > 0)
{
    if (a < 60)
    {
        if (a % 2 == 1)
        {
            // 输出 "yes"
        }
    }
}

很常见的if嵌套,但这样感觉并不直观。

个人推荐这样的写法

do
{
    if (a < 0)
        break;
    if (a >= 60)
        break;
    if (a % 2 == 0)
        break;

    // 当所有不满足的条件都排除了之后,走到这一步就是符合的结果
    // 输出 "yes"
} while (false);