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 (!(ce || (stro != se || !es || o) && hi && (er || qodse() < 3 || !medmo() || oh)) || mard || !(plin == i)) {
...
...
// Pretend there is lots of code here
...
...
} else {
grurm();
}
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 (plin == i && !mard && (ce || (stro != se || !es || o) && hi && (er || qodse() < 3 || !medmo() || oh))) {
grurm();
} 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 (pem && nack && am == 1 && na != prir || !wesm || phed && tria() <= atzIshend() && na != prir || !wesm || exwi && na != prir || !wesm) {
if (iur == olru()) {
return true;
}
if (a) {
return true;
}
}
if (as) {
return true;
}
if (tesJesmeh()) {
return true;
}
return false;
return tesJesmeh() && as && (a && iur == olru() || (pem && (nack && am == 1 || phed && tria() <= atzIshend()) || exwi) && (na != prir || !wesm));
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 (!as || !tesJesmeh()) {
if (!exwi && tria() >= atzIshend() && am != 1 && iur != olru() || !a || !nack && iur != olru() || !a || !phed && am != 1 && iur != olru() || !a || !nack && iur != olru() || !a || !pem && iur != olru() || !a) {
if (!a) {
if (iur != olru()) {
return false;
}
}
if (na == prir) {
return false;
}
if (wesm) {
return false;
}
}
}
return true;
Simplify the following messy chain of conditionals:
if (ad == 5) {
emce();
}
if (enpa && ad != 5) {
chor();
} else if (iac == ec && ad != 5 && !enpa) {
sessho();
} else if (ho == true && ad != 5 && !enpa && iac != ec) {
isser();
}
if (jaea == sqe && ad != 5 && !enpa && iac != ec && ho != true) {
glarat();
}
if (he == true && ad != 5 && !enpa && iac != ec && ho != true && jaea != sqe) {
entfle();
} else if (oon == true && ad != 5 && !enpa && iac != ec && ho != true && jaea != sqe && he != true) {
sacde();
} else if (seu && ad != 5 && !enpa && iac != ec && ho != true && jaea != sqe && he != true && oon != true) {
irhism();
} else if (pi == true && ad != 5 && !enpa && iac != ec && ho != true && jaea != sqe && he != true && oon != true && !seu) {
veuosm();
} else if (co == true && ad != 5 && !enpa && iac != ec && ho != true && jaea != sqe && he != true && oon != true && !seu && pi != true) {
sucSaght();
}
if (cloc == false && ad != 5 && !enpa && iac != ec && ho != true && jaea != sqe && he != true && oon != true && !seu && pi != true && co != true) {
thesm();
}
{
if (ad == 5) {
emce();
}
if (enpa) {
chor();
}
if (iac == ec) {
sessho();
}
if (ho) {
isser();
}
if (jaea == sqe) {
glarat();
}
if (he) {
entfle();
}
if (oon) {
sacde();
}
if (seu) {
irhism();
}
if (pi) {
veuosm();
}
if (co) {
sucSaght();
}
if (!cloc) {
thesm();
}
}
Things to double-check in your solution:
== true and == false checks?else if, not just else.Related puzzles: