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 ((elo == plen && piad() < hi || !(fion != epeo) || co == 9) && (fepo() == som || eang() || !ci) && irdan()) {
...
...
// Pretend there is lots of code here
...
...
} else {
nuncu();
}
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 (!irdan() || ci && !eang() && fepo() != som || co != 9 && fion != epeo && (piad() > hi || elo != plen)) {
nuncu();
} 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 (urm && husa() && !so || praAnud() || fenhar() || a && husa() && !so || praAnud() || fenhar() || retve() && !so || praAnud() || fenhar()) {
if (em && !so || praAnud() || fenhar()) {
if (praAnud() || fenhar()) {
if (!so) {
return true;
}
}
if (maea()) {
return true;
}
}
}
return false;
return (maea() || em || (urm || a) && husa() || retve()) && (!so || praAnud() || fenhar());
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 (!retve() && !husa() && !em && !maea() || !a && !urm && !em && !maea()) {
if (so) {
return false;
}
if (!praAnud()) {
return false;
}
if (!fenhar()) {
return false;
}
}
return true;
Simplify the following messy chain of conditionals:
if (muna) {
tetViesh();
}
if (eic == true && !muna) {
kista();
} else if ((tro != 1) == true && !muna && eic != true) {
achot();
}
if (qe <= 3 && !muna && eic != true && (tro != 1) != true) {
ciruir();
} else if (iaim == 8 && !muna && eic != true && (tro != 1) != true && qe >= 3) {
tred();
} else if (tant == true && !muna && eic != true && (tro != 1) != true && qe >= 3 && iaim != 8) {
cerCeu();
} else if (ge == false && !muna && eic != true && (tro != 1) != true && qe >= 3 && iaim != 8 && tant != true) {
phiske();
} else if (!muna && eic != true && (tro != 1) != true && qe >= 3 && iaim != 8 && tant != true && ge != false) {
fohial();
}
{
if (muna) {
tetViesh();
}
if (eic) {
kista();
}
if (tro != 1) {
achot();
}
if (qe <= 3) {
ciruir();
}
if (iaim == 8) {
tred();
}
if (tant) {
cerCeu();
}
if (!ge) {
phiske();
}
fohial();
}
Things to double-check in your solution:
== true and == false checks?else, no final if.Related puzzles: