提问者:小点点

多次中断或双代码在一个情况下,或其他什么? [已关闭]


你想要什么? 我有这样一个switch语句:

switch (state) {
  case ONGOING :
    if (getNextGroup()) {
      // something happens here
      if (getNextItem()) {
        // call statements1
      }
      else {
        // call statements2
      }
    }
    else {
      // call statements2
    }
    break;
  case ... :
}

我应该为“statements2”使用重复代码,还是使用如下代码更好:

switch (state) {
  case ONGOING :
    if (getNextGroup()) {
      // something happens here
      if (getNextItem()) {
        // call statements1
        break;
      }
    }
    // call statements2
    break;
  case ... :
}

我没有看到很多例子,其中有多个中断在一个大小写,虽然对我来说,它看起来“更好”和更可读性。 statements2是4-5行的短代码,例如。


共1个答案

匿名用户

基本上是这样工作的,LOL。

switch (state) {
  case ONGOING :
    if (getNextGroup() && getNextItem()) {
      // call statements1
    }
    else {
      // call statements2
    }
    break;
  case ... :
}

但是您应该高度考虑这样做,以使switch更具可读性:

void ongoing()
{
  if (getNextGroup() && getNextItem()) {
    // call statements1
  }
  else {
    // call statements2
  }
}

switch (state) {
  case ONGOING :
    ongoing();
    break;
  case ... :
}