В этом случае это не будет иметь большого значения. Ваш второй тест «когда» выполняется только на один раз меньше, чем ваш первый.
Тем не менее, я бы использовал решение "выбрать / когда / иначе", если вы никогда не ожидаете и не хотите, чтобы оба эти условия выполнялись. Было бы нелогично проверять оба условия, зная, что будет выполнено только одно, но в зависимости от проверяемых факторов это будет неизбежно.
Конечно, выгода «выбрать» заключается в том, что вы можете легко установить запасной вариант, но вы этим не пользуетесь. Не то чтобы это имело большое значение, но эта строка 'иначе' будет выполняться всякий раз, когда два условия возвращают false, даже если она ничего не содержит.
Если бы вы делали это условное выражение на другом языке, таком как JavaScript, вы, вероятно, дважды бы не подумали об использовании решения if / else if / else - опять же, потому что вы хотите, чтобы только одно условие когда-либо выполнялось.
Я боюсь, что использование 'выбирать' над ', если' является условным, все зависит от данных, которые вы обрабатываете, и от того, что вы тестируете.
Это может быть полезно до некоторой степени, по мнению другого разработчика: http://xsltbyexample.blogspot.com/2008/02/when-to-use-xslif-and-xslwhen.html