【问题标题】:Is it bad practice to nest an if statement inside a switch statement?将 if 语句嵌套在 switch 语句中是不好的做法吗?
【发布时间】:2021-09-20 19:13:41
【问题描述】:

以下代码示例是在 switch 语句中使用 if 语句的不良做法吗?当我告诉他们这是我在 switch 语句中应用一些逻辑的方式时,有人嘲笑我,并认为将 if 语句放在 switch 语句中是荒谬的:

switch(x)
{

  case 1:
   if(y==1){
     return b;
   } else {
     return c;
   }
   break;

   case 2:
   .....

   break;
}

【问题讨论】:

  • 对我个人而言,不,假设您想用 switch 解析用户输入 x ,执行一些将 x 作为参数传递给 switch 块内的函数,最后返回一个值这需要与其他东西进行比较。只要您的代码干净、结构化且可读,为什么会有问题?

标签: switch-statement coding-style


【解决方案1】:

通常可以这样做,但更简洁的方法是移动此块:

if (y==1)
{
    return b;
} 
else 
{
    return c;
}

在将y 作为参数的函数内部,如下所示:

switch(x)
{

    case 1:
        return func(y);
        break;

    case 2:
        …
        break;
}

func(y) 
{
    if (y==1)
    {
        return b;
    }
    return c;
}

这使得代码更清晰,更容易维护,但除此之外,做这样的事情没有其他大问题。

【讨论】:

    猜你喜欢
    • 2016-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多