Для вложенных если, что будет эквивалентной операцией - PullRequest
0 голосов
/ 20 мая 2018

Для оператора if...else ниже

if (a > b) {
    max = a;
}
else {
    max = b;
}

приведет к сокращению, как показано ниже?

max = (a > b) ? a : b;

Как насчет этого оператора if и nested if?

if (a > b) {
    max = a;
}
else {
    if (c > d)
        max = c;
    else
        max = d;
}

1 Ответ

0 голосов
/ 21 мая 2018

Просто сделайте:

max = (a > b) ? a :
      (c > d) ? c : d;

И это можно отформатировать так, чтобы оно было произвольно длинным, поэтому форматирование важно, потому что троичные операторы могут очень быстро запутаться.Рассмотрим:

max = (a > b) ? a :
      (b > c) ? b :
      (c ? d) ? c :
      (d ? e) ? d : e;

Стихи:

max = (a > b) ? a : (b > c) ? b : (c ? d) ? c : (d ? e) ? d : e;
...