У меня есть 2 boolean
переменных, например:Как определить разные типы поведения с 2 булевыми?
boolean isWhite;
boolean isTall;
Так что я хочу, чтобы определить различное поведение для 4 возможных случаев ({(isWhite, isTall), (!isWhite, isTall), (isWhite, !isTall), (!isWhite, !isTall)}
).
1) Есть ли более элегантный и практичный способ сделать это чем с использованием if/else
каждый раз?
if(isWhite) {
if(isTall) {
// Case 1
}
else {
// Case 2
}
else {
if(isTall) {
// Case 3
}
else {
// Case 4
}
2) Будет ли это быть любой разницы делать что-то вроде этого, а?
if (isWhite && isTall)
// Case 1
if (isWhite && !isTall)
// Case 2
if (!isWhite && isTall)
// Case 3
if (!isWhite && !isTall)
// Case 4
Подсказка: рассмотрим ', если (isWhite && Установите фильтры и соберите)'. Если этот тест является «ложным», вы знаете, что либо 1) 'isWhite == false', 2)' isTall == false', либо 3) оба являются 'false'. Поэтому все, что вам нужно проверить, это '! IsWhite','! IsTall' и '! IsWhite &&! IsTall'. Дальше возможны такие вычеты; но может добавить к сложности. –
Если поведение совершенно иное, я предпочел бы # 2, поскольку более глубокие углубления кажутся более трудными для чтения. Вы также можете использовать google для классов case/pattern в Scala, чтобы увидеть еще один доступный там – Ivan
, если вы сделаете это, лучше используйте 'else-if' –