Вчера вбросил знакомым одну простую задачку, которая слегка ввела их в ступор. Дай-ка и сюда вброшу.
Необходимо оптимизировать (переходы по адресу, кол-во условий/вызовов/переменных) и сделать лаконичным, понятным, читаемым, без лапши, копипасты, расширяемым для большего кол-ва значений за наименьшее кол-во телодвижений, следующий кусочек псевдокода:
// value can be: a,b,c,d,e,f or g
myLongLongNameOfVariable = getName();
if (myLongLongNameOfVariable == 'a' || myLongLongNameOfVariable == 'b' || myLongLongNameOfVariable == 'c' || myLongLongNameOfVariable == 'd' || myLongLongNameOfVariable == 'e' || myLongLongNameOfVariable == 'f') {
forAllNonDefault();
if (myLongLongNameOfVariable == 'a') {
forA();
} else if (myLongLongNameOfVariable == 'b') {
forB();
} else if (myLongLongNameOfVariable == 'c') {
forC();
} else if (myLongLongNameOfVariable == 'd') {
forD();
} else if (myLongLongNameOfVariable == 'e') {
forE();
} else if (myLongLongNameOfVariable == 'f') {
forF();
}
} else {
// last (here 'g') value context (default)
forDefault();
}
Ваши предложения?