Переключатель внутри переключателя альтернатива - PullRequest
0 голосов
/ 24 октября 2018

У меня есть этот псевдокод:

switch (true) {
  case (cond_1 < 0):
    return 'c1 < 0';
  case (cond_1 === 0):
    switch (true) {
      case (cond_2 < 0):
        return 'c2 < 0'
      case (cond_2 === 0):
        return 'c2 === 0'
      default:
        return 'c2 > 0'
    }
  default:
    return 'c1 > 0';
}

Есть ли лучший способ написать этот код без использования switch внутри другого оператора switch?

1 Ответ

0 голосов
/ 24 октября 2018

Эти if/else условия более компактны, и поток легче читать:

if (cond_1 < 0) return 'c1 < 0';
if (cond_1 === 0) {
  if (cond_2 < 0) return 'c2 < 0';
  if (cond_2 === 0) return 'c2 === 0';
  if (cond_2 > 0) return 'c2 > 0';
}
return 'c1 > 0';
...