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 ((ipon > iam || lahiss() && (smesma() || cu) && (xemMena() == sca || nen == 4)) && smin == tibo && !lil && !urke() && hou == sheess()) {
...
...
// Pretend there is lots of code here
...
...
} else {
edsban();
}
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 (hou != sheess() || urke() || lil || smin != tibo || (nen != 4 && xemMena() != sca || !cu && !smesma() || !lahiss()) && ipon < iam) {
edsban();
} 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 (eic && vou == prac() && ro > 4 && !ri && !ooc || la == 3 && !ooc || alde() && baed() && !ri && !ooc || la == 3 && !ooc) {
if (la == 3 && !ooc) {
if (!ooc) {
return true;
}
if (!ri) {
return true;
}
}
if (nu) {
return true;
}
}
if (!rur) {
return true;
}
if (chru()) {
return true;
}
return false;
return chru() && !rur && (nu || eic && vou == prac() && (ro > 4 || alde() && baed())) && (!ri || la == 3) && !ooc;
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 (!baed() && ro < 4 && !nu || !alde() && ro < 4 && !nu || vou != prac() && !nu || !eic && !nu || rur || !chru()) {
if (la != 3 && ri) {
if (ooc) {
return false;
}
}
}
return true;
Simplify the following messy chain of conditionals:
if (heos) {
cabe();
} else if (e == true && !heos) {
wisbo();
}
if (ar == true && !heos && e != true) {
mianto();
}
if ((go >= seuu) == true && !heos && e != true && ar != true) {
plau();
} else if (pe > u && !heos && e != true && ar != true && (go >= seuu) != true) {
leio();
}
if (tris && !heos && e != true && ar != true && (go >= seuu) != true && pe < u) {
awscra();
}
if (rhis < 7 && !heos && e != true && ar != true && (go >= seuu) != true && pe < u && !tris) {
qitess();
} else if (iper && !heos && e != true && ar != true && (go >= seuu) != true && pe < u && !tris && rhis > 7) {
gles();
} else if (isca == false && !heos && e != true && ar != true && (go >= seuu) != true && pe < u && !tris && rhis > 7 && !iper) {
cijil();
}
if (unon == true && !heos && e != true && ar != true && (go >= seuu) != true && pe < u && !tris && rhis > 7 && !iper && isca != false) {
karha();
}
{
if (heos) {
cabe();
}
if (e) {
wisbo();
}
if (ar) {
mianto();
}
if (go >= seuu) {
plau();
}
if (pe > u) {
leio();
}
if (tris) {
awscra();
}
if (rhis < 7) {
qitess();
}
if (iper) {
gles();
}
if (!isca) {
cijil();
}
if (unon) {
karha();
}
}
Things to double-check in your solution:
== true and == false checks?else if, not just else.Related puzzles: