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 || !sont || !lu && (!wial || parm() || !a || en || !(!phou && rul) || sipo() == 5) && elit == 4) {
...
...
// Pretend there is lots of code here
...
...
} else {
ritpe();
}
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 ((elit != 4 || sipo() != 5 && !phou && rul && !en && a && !parm() && wial || lu) && sont && !co) {
ritpe();
} 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 (fost && el >= surk || dest() != ro || iir && !e && sarn() && slin) {
if (fliTisan() && el >= surk || dest() != ro || iir && !e && sarn() && slin) {
if (!eset && el >= surk || dest() != ro || iir && !e && sarn() && slin) {
if (dest() != ro || iir && !e && sarn() && slin) {
if (el >= surk) {
return true;
}
}
if (i) {
return true;
}
if (u == 2) {
return true;
}
if (sa == ple) {
return true;
}
}
}
}
return false;
return (sa == ple && u == 2 && i || !eset || fliTisan() || fost) && (el >= surk || dest() != ro || iir && !e && sarn() && slin);
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 (!fost && !fliTisan() && eset && !i || u != 2 || sa != ple) {
if (!sarn() && dest() == ro && el <= surk || e && dest() == ro && el <= surk || !iir && dest() == ro && el <= surk) {
if (el <= surk) {
return false;
}
if (dest() == ro) {
return false;
}
if (!slin) {
return false;
}
}
}
return true;
Simplify the following messy chain of conditionals:
if (ti) {
resho();
} else if ((sqin == snui) == true && !ti) {
ooreel();
}
if (ziac == false && !ti && (sqin == snui) != true) {
geswre();
} else if (mo == true && !ti && (sqin == snui) != true && ziac != false) {
heprol();
}
if (orm == true && !ti && (sqin == snui) != true && ziac != false && mo != true) {
bris();
}
if (on && !ti && (sqin == snui) != true && ziac != false && mo != true && orm != true) {
thel();
}
if (pu == false && !ti && (sqin == snui) != true && ziac != false && mo != true && orm != true && !on) {
fird();
} else if (ce == true && !ti && (sqin == snui) != true && ziac != false && mo != true && orm != true && !on && pu != false) {
cred();
} else if (ipt == true && !ti && (sqin == snui) != true && ziac != false && mo != true && orm != true && !on && pu != false && ce != true) {
aheScu();
} else if (si == false && !ti && (sqin == snui) != true && ziac != false && mo != true && orm != true && !on && pu != false && ce != true && ipt != true) {
cehe();
}
if (coi > as && !ti && (sqin == snui) != true && ziac != false && mo != true && orm != true && !on && pu != false && ce != true && ipt != true && si != false) {
pecPris();
}
{
if (ti) {
resho();
}
if (sqin == snui) {
ooreel();
}
if (!ziac) {
geswre();
}
if (mo) {
heprol();
}
if (orm) {
bris();
}
if (on) {
thel();
}
if (!pu) {
fird();
}
if (ce) {
cred();
}
if (ipt) {
aheScu();
}
if (!si) {
cehe();
}
if (coi > as) {
pecPris();
}
}
Things to double-check in your solution:
== true and == false checks?else if, not just else.Related puzzles: