Я выполнил должное внимание, чтобы узнать, было ли это задано раньше и не найдено ничего похожего, но близко.Тернар против Цепного Если-else-if (Спектакль)
Скажите, что у меня есть цепочка операторов if-else-if.
foreach (value in valueList)
if (value == 120) {
w = true;
} else if (value == 140) {
x = true;
} else if (value == 160) {
y = true;
} else if (value == 180) {
z = true;
}
}
Есть ли какие-либо преимущества изменяя еще, если цепь трехкомпонентных выражений, таких как:
foreach (value in valueList) {
w = (value == 120) ? true : false;
x = (value == 140) ? true : false;
y = (value == 160) ? true : false;
z = (value == 180) ? true : false;
}
Мой первый наклон нет. Из-за цикла for
каждое задание выполняется каждый раз, когда происходит цикл. Если в цепочке if-else-if назначение выполняется только один раз. Но сравнения делаются чаще (правда?). Может ли кто-нибудь решить это для меня?
Я знаю, что switch
легко победит обоих с точки зрения производительности. Могу ли я обосновать этот вопрос в предположении, что использование switch
не является вариантом?
Я думаю, что еще один вопрос в этом вопросе будет состоять в том, какие сравнения между двумя?
Как насчет использования 'switch'? –
Переключатель легко бьет оба, я думал, что упомянул об этом ... нет. – gh0st
Это не эквивалент. Если 'valuelist' содержит все четыре числа, по порядку, после первого цикла все четыре переменные будут истинными. После второго цикла будет истинно только 'z'. –