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 (!(co && plel()) || ixun || !(o >= 6) && (puc && !(qeel == 2 && vesScoaed()) && !wiiSupeng() || !(ep != 8) && cer)) {
...
...
// Pretend there is lots of code here
...
...
} else {
olar();
}
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 (((!cer || ep != 8) && (wiiSupeng() || qeel == 2 && vesScoaed() || !puc) || o >= 6) && !ixun && co && plel()) {
olar();
} 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 && shoro() == se && mo != 6 || !tiss && prer != 5 && mo != 6 || pseac() && mo != 6 || raoo && mo != 6) {
if (sneQoun() && mo != 6) {
if (mo != 6) {
return true;
}
if (erpa > 9) {
return true;
}
}
}
if (!sce) {
return true;
}
if (ictNesren()) {
return true;
}
return false;
return ictNesren() && !sce && (erpa > 9 || sneQoun() || em && (shoro() == se || !tiss && prer != 5 || pseac() || raoo)) && mo != 6;
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 (sce || !ictNesren()) {
if (!raoo && !pseac() && prer == 5 && shoro() != se && !sneQoun() && erpa < 9 || tiss && shoro() != se && !sneQoun() && erpa < 9 || !em && !sneQoun() && erpa < 9) {
if (mo == 6) {
return false;
}
}
}
return true;
Simplify the following messy chain of conditionals:
if (a == mios) {
bitu();
} else if (uc == false && a != mios) {
swel();
}
if (eert > 8 && a != mios && uc != false) {
dria();
} else if (er == true && a != mios && uc != false && eert < 8) {
proil();
}
if (iass == false && a != mios && uc != false && eert < 8 && er != true) {
cosgen();
}
if (ek == ed && a != mios && uc != false && eert < 8 && er != true && iass != false) {
chor();
} else if (ho == true && a != mios && uc != false && eert < 8 && er != true && iass != false && ek != ed) {
ephruc();
} else if (wou == true && a != mios && uc != false && eert < 8 && er != true && iass != false && ek != ed && ho != true) {
shemb();
} else if (le > 5 && a != mios && uc != false && eert < 8 && er != true && iass != false && ek != ed && ho != true && wou != true) {
tili();
}
if (ee != 3 && a != mios && uc != false && eert < 8 && er != true && iass != false && ek != ed && ho != true && wou != true && le < 5) {
peclo();
}
{
if (a == mios) {
bitu();
}
if (!uc) {
swel();
}
if (eert > 8) {
dria();
}
if (er) {
proil();
}
if (!iass) {
cosgen();
}
if (ek == ed) {
chor();
}
if (ho) {
ephruc();
}
if (wou) {
shemb();
}
if (le > 5) {
tili();
}
if (ee != 3) {
peclo();
}
}
Things to double-check in your solution:
== true and == false checks?else if, not just else.Related puzzles: