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 ((he || an && nadocs() == op) && (pese() || prian() == 3 || !nilec())) {
...
...
// Pretend there is lots of code here
...
...
} else {
dioss();
}
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 (nilec() && prian() != 3 && !pese() || (nadocs() != op || !an) && !he) {
dioss();
} 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 (!ost && ud || !e && hur == ir || pral != 3 && ud || !e && hur == ir || !lo && ud || !e && hur == ir) {
if (!e && hur == ir) {
if (ud) {
return true;
}
}
if (trard() > 1) {
return true;
}
}
return false;
return (trard() > 1 || !ost || pral != 3 || !lo) && (ud || !e && hur == ir);
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 (lo && pral == 3 && ost && trard() < 1) {
if (e && !ud) {
if (!ud) {
return false;
}
if (hur != ir) {
return false;
}
}
}
return true;
Simplify the following messy chain of conditionals:
if (ke == false) {
piedgi();
} else if (hu == false && ke != false) {
teiSeast();
}
if ((prer != pio) == true && ke != false && hu != false) {
essma();
}
if ((de > tul) == true && ke != false && hu != false && (prer != pio) != true) {
ilwhi();
} else if (i == false && ke != false && hu != false && (prer != pio) != true && (de > tul) != true) {
spuStriar();
} else if (jeic == true && ke != false && hu != false && (prer != pio) != true && (de > tul) != true && i != false) {
olioth();
}
{
if (!ke) {
piedgi();
}
if (!hu) {
teiSeast();
}
if (prer != pio) {
essma();
}
if (de > tul) {
ilwhi();
}
if (!i) {
spuStriar();
}
if (jeic) {
olioth();
}
}
Things to double-check in your solution:
== true and == false checks?else if, not just else.Related puzzles: