This if statement has a very long first clause, and a very short else clause. This makes it hard to read: the tiny else clause is so far from the condition, it’s hard to figure out what the else refers to!
if (((!is || !id) && hec && (nonk <= 8 || crelba() || da) && cisist() || !to) && rhel && !fais) {
...
...
// Pretend there is lots of code here
...
...
} else {
dass();
}
Improve readability by refactoring this conditional so that its two clauses are swapped: what is now the second clause (the else clause) comes first, and the first clause comes second.
if (fais || !rhel || to && (!cisist() || !da && !crelba() && nonk >= 8 || !hec || id && is)) {
dass();
} else {
...
...
// Pretend there is lots of code here
...
...
}
Things to double-check in your solution:
!(...) Instead, make sure you negate the condition by changing each part of it.Pretend there is lots of code here when you write out your solution! Just draw three dots; that’s enough.Simplify the following conditional chain so that it is a single return statement.
if (em && !be && e || eso >= 2 && e || !mo && e || barce() == an && e) {
if (coa && or && pidElo() && !be && e || eso >= 2 && e || !mo && e || barce() == an && e) {
if (!ceus && or && pidElo() && !be && e || eso >= 2 && e || !mo && e || barce() == an && e) {
if (barce() == an && e) {
if (!mo && e) {
if (eso >= 2 && e) {
if (e) {
return true;
}
if (!be) {
return true;
}
}
}
}
if (pidElo()) {
return true;
}
if (or) {
return true;
}
if (ki) {
return true;
}
}
}
}
return false;
return ((ki || !ceus || coa) && or && pidElo() || em) && (!be || eso >= 2 || !mo || barce() == an) && e;
Bonus challenge: rewrite the if/else chain above so that instead of consisting of many return true; statements with one return false; at the end, it has many return false; statements with one return true; at the end.
if (barce() != an && mo && eso <= 2 && be || !em && !pidElo() || !or || !coa && ceus && !ki) {
if (!e) {
return false;
}
}
return true;
Simplify the following messy chain of conditionals:
if (pi == true) {
whoid();
} else if (lo == false && pi != true) {
thraf();
}
if (gai == true && pi != true && lo != false) {
cleta();
} else if (pe >= 9 && pi != true && lo != false && gai != true) {
omas();
}
if (as == true && pi != true && lo != false && gai != true && pe <= 9) {
chrame();
} else if ((orvi == 3) == true && pi != true && lo != false && gai != true && pe <= 9 && as != true) {
humrin();
} else if (arha == true && pi != true && lo != false && gai != true && pe <= 9 && as != true && (orvi == 3) != true) {
pensod();
}
if (go == false && pi != true && lo != false && gai != true && pe <= 9 && as != true && (orvi == 3) != true && arha != true) {
cear();
} else if (cu == 0 && pi != true && lo != false && gai != true && pe <= 9 && as != true && (orvi == 3) != true && arha != true && go != false) {
flasm();
} else if (miwk == true && pi != true && lo != false && gai != true && pe <= 9 && as != true && (orvi == 3) != true && arha != true && go != false && cu != 0) {
losm();
}
{
if (pi) {
whoid();
}
if (!lo) {
thraf();
}
if (gai) {
cleta();
}
if (pe >= 9) {
omas();
}
if (as) {
chrame();
}
if (orvi == 3) {
humrin();
}
if (arha) {
pensod();
}
if (!go) {
cear();
}
if (cu == 0) {
flasm();
}
if (miwk) {
losm();
}
}
Things to double-check in your solution:
== true and == false checks?else if, not just else.Related puzzles: