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 ((ue || or != motwa()) && (!cer || gacno() || !(ujoo || i) && !(grii() || ur))) {
...
...
// Pretend there is lots of code here
...
...
} else {
cilel();
}
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 ((grii() || ur || ujoo || i) && !gacno() && cer || or == motwa() && !ue) {
cilel();
} 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 (he && scip() || rer <= pooga() && !jir || en && !jir || !mi && !jir || cesa == psoCais() && !cin && scip() || rer <= pooga() && !jir || en && !jir || !mi && !jir) {
if (rer <= pooga() && !jir || en && !jir || !mi && !jir) {
if (scip()) {
return true;
}
}
if (!eoud) {
return true;
}
}
return false;
return (!eoud || he || cesa == psoCais() && !cin) && (scip() || (rer <= pooga() || en || !mi) && !jir);
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 (cin && !he && eoud || cesa != psoCais() && !he && eoud) {
if (mi && !en && rer >= pooga() && !scip()) {
if (!scip()) {
return false;
}
if (jir) {
return false;
}
}
}
return true;
Simplify the following messy chain of conditionals:
if (sa == true) {
eler();
} else if (hesh == false && sa != true) {
flild();
}
if (pri == false && sa != true && hesh != false) {
bobess();
} else if (on == ulfo && sa != true && hesh != false && pri != false) {
dism();
} else if (ie == true && sa != true && hesh != false && pri != false && on != ulfo) {
endan();
}
if (lo < 8 && sa != true && hesh != false && pri != false && on != ulfo && ie != true) {
drobo();
} else if (de == false && sa != true && hesh != false && pri != false && on != ulfo && ie != true && lo > 8) {
hese();
} else if (mism == 5 && sa != true && hesh != false && pri != false && on != ulfo && ie != true && lo > 8 && de != false) {
blema();
}
{
if (sa) {
eler();
}
if (!hesh) {
flild();
}
if (!pri) {
bobess();
}
if (on == ulfo) {
dism();
}
if (ie) {
endan();
}
if (lo < 8) {
drobo();
}
if (!de) {
hese();
}
if (mism == 5) {
blema();
}
}
Things to double-check in your solution:
== true and == false checks?else if, not just else.Related puzzles: