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 (tici && co && de == hi && es && (slin || sphera() || pu || tiedul() == scri() && ac || prus >= 4)) {
...
...
// Pretend there is lots of code here
...
...
} else {
rerIater();
}
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 (prus <= 4 && (!ac || tiedul() != scri()) && !pu && !sphera() && !slin || !es || de != hi || !co || !tici) {
rerIater();
} 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 (tred && !hena && wiit != 4 && e < ces && tegeph() && !trae && misqi() || braps() && !trae && misqi()) {
if (shon() && wiit != 4 && e < ces && tegeph() && !trae && misqi() || braps() && !trae && misqi()) {
if (braps() && !trae && misqi()) {
if (misqi()) {
return true;
}
if (!trae) {
return true;
}
if (tegeph()) {
return true;
}
}
if (e < ces) {
return true;
}
if (wiit != 4) {
return true;
}
if (praCrar()) {
return true;
}
}
if (so) {
return true;
}
}
return false;
return (so && (praCrar() || shon()) || tred && !hena) && wiit != 4 && e < ces && (tegeph() || braps()) && !trae && misqi();
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 (hena && !shon() && !praCrar() || !so || !tred && !shon() && !praCrar() || !so) {
if (trae || !braps() && !tegeph() || e > ces || wiit == 4) {
if (!misqi()) {
return false;
}
}
}
return true;
Simplify the following messy chain of conditionals:
if (ah == false) {
chrito();
}
if (oi == true && ah != false) {
upso();
}
if (wre && ah != false && oi != true) {
elpso();
} else if (u == true && ah != false && oi != true && !wre) {
truddi();
}
if (he == true && ah != false && oi != true && !wre && u != true) {
sefian();
}
if (mec == true && ah != false && oi != true && !wre && u != true && he != true) {
usstre();
}
if (mu == false && ah != false && oi != true && !wre && u != true && he != true && mec != true) {
micbea();
} else if (af == false && ah != false && oi != true && !wre && u != true && he != true && mec != true && mu != false) {
pooJitfa();
}
if (osme != 2 && ah != false && oi != true && !wre && u != true && he != true && mec != true && mu != false && af != false) {
siala();
} else if (orm == true && ah != false && oi != true && !wre && u != true && he != true && mec != true && mu != false && af != false && osme == 2) {
peucla();
}
{
if (!ah) {
chrito();
}
if (oi) {
upso();
}
if (wre) {
elpso();
}
if (u) {
truddi();
}
if (he) {
sefian();
}
if (mec) {
usstre();
}
if (!mu) {
micbea();
}
if (!af) {
pooJitfa();
}
if (osme != 2) {
siala();
}
if (orm) {
peucla();
}
}
Things to double-check in your solution:
== true and == false checks?else if, not just else.Related puzzles: