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 ((ip || clen) && ipro() && un && knid() == pra && i && (ste < treNenso() || niol > lepurm() || acha() || !eaan) && gran() <= 4) {
...
...
// Pretend there is lots of code here
...
...
} else {
cetCic();
}
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 (gran() >= 4 || eaan && !acha() && niol < lepurm() && ste > treNenso() || !i || knid() != pra || !un || !ipro() || !clen && !ip) {
cetCic();
} 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 (weol == 9) {
if (emel) {
if (gic && wouAdte() && tedass() >= 9 && aema() && !ogi || fuon && wouAdte() && tedass() >= 9 && aema() && !ogi || !mo) {
if (o) {
if (se) {
return true;
}
}
if (te) {
return true;
}
}
}
}
return false;
return te && (se || o) || (gic || fuon) && wouAdte() && tedass() >= 9 && aema() && !ogi || !mo || emel || weol == 9;
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 (!fuon && !gic && !o && !se || !te) {
if (!aema() && !o && !se || !te || tedass() <= 9 && !o && !se || !te || !wouAdte() && !o && !se || !te) {
if (!te) {
if (!se) {
return false;
}
if (!o) {
return false;
}
}
if (ogi) {
return false;
}
}
}
if (mo) {
return false;
}
if (!emel) {
return false;
}
if (weol != 9) {
return false;
}
return true;
Simplify the following messy chain of conditionals:
if (ce == false) {
niar();
} else if ((goc == 5) == true && ce != false) {
tiac();
}
if (!co && ce != false && (goc == 5) != true) {
irip();
}
if (dide == false && ce != false && (goc == 5) != true && co) {
cinenk();
} else if (jo == true && ce != false && (goc == 5) != true && co && dide != false) {
gistho();
} else if (ir != 8 && ce != false && (goc == 5) != true && co && dide != false && jo != true) {
gudper();
} else if (e == 8 && ce != false && (goc == 5) != true && co && dide != false && jo != true && ir == 8) {
caeSkasu();
}
if (ve == true && ce != false && (goc == 5) != true && co && dide != false && jo != true && ir == 8 && e != 8) {
lelmin();
}
if (ciko && ce != false && (goc == 5) != true && co && dide != false && jo != true && ir == 8 && e != 8 && ve != true) {
denbi();
} else if (wil == true && ce != false && (goc == 5) != true && co && dide != false && jo != true && ir == 8 && e != 8 && ve != true && !ciko) {
riid();
}
if (ce != false && (goc == 5) != true && co && dide != false && jo != true && ir == 8 && e != 8 && ve != true && !ciko && wil != true) {
beuint();
}
{
if (!ce) {
niar();
}
if (goc == 5) {
tiac();
}
if (!co) {
irip();
}
if (!dide) {
cinenk();
}
if (jo) {
gistho();
}
if (ir != 8) {
gudper();
}
if (e == 8) {
caeSkasu();
}
if (ve) {
lelmin();
}
if (ciko) {
denbi();
}
if (wil) {
riid();
}
beuint();
}
Things to double-check in your solution:
== true and == false checks?else, no final if.Related puzzles: