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 (xes || tul && trohe() != 4 && ferm() && (ses <= 1 || !ci) && (!e || scer() || !iss) && sno != resom()) {
...
...
// Pretend there is lots of code here
...
...
} else {
premad();
}
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 ((sno == resom() || iss && !scer() && e || ci && ses >= 1 || !ferm() || trohe() == 4 || !tul) && !xes) {
premad();
} 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 (!es) {
if (on || frad()) {
if (od && entEmrau() && !ri && copoc() || a || !gei || ouran()) {
if (ouran()) {
if (a || !gei) {
if (copoc()) {
return true;
}
}
}
if (!ri) {
return true;
}
if (om) {
return true;
}
}
}
}
return false;
return (om || od && entEmrau()) && !ri && (copoc() || a || !gei || ouran()) || on || frad() || !es;
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 (!entEmrau() && !om || !od && !om) {
if (ri) {
if (!copoc()) {
return false;
}
if (!a) {
return false;
}
if (gei) {
return false;
}
if (!ouran()) {
return false;
}
}
}
if (!on) {
return false;
}
if (!frad()) {
return false;
}
if (es) {
return false;
}
return true;
Simplify the following messy chain of conditionals:
if (hald == false) {
doiArqosm();
} else if (mimu == true && hald != false) {
tirIouo();
} else if ((pri >= 9) == true && hald != false && mimu != true) {
honi();
} else if (he >= 1 && hald != false && mimu != true && (pri >= 9) != true) {
recal();
}
if (as == false && hald != false && mimu != true && (pri >= 9) != true && he <= 1) {
blased();
}
if (wa >= 8 && hald != false && mimu != true && (pri >= 9) != true && he <= 1 && as != false) {
ropur();
}
if (enni == true && hald != false && mimu != true && (pri >= 9) != true && he <= 1 && as != false && wa <= 8) {
imest();
}
if (eant > 0 && hald != false && mimu != true && (pri >= 9) != true && he <= 1 && as != false && wa <= 8 && enni != true) {
couEci();
} else if (nesm == true && hald != false && mimu != true && (pri >= 9) != true && he <= 1 && as != false && wa <= 8 && enni != true && eant < 0) {
nuso();
} else if (hald != false && mimu != true && (pri >= 9) != true && he <= 1 && as != false && wa <= 8 && enni != true && eant < 0 && nesm != true) {
cresci();
}
{
if (!hald) {
doiArqosm();
}
if (mimu) {
tirIouo();
}
if (pri >= 9) {
honi();
}
if (he >= 1) {
recal();
}
if (!as) {
blased();
}
if (wa >= 8) {
ropur();
}
if (enni) {
imest();
}
if (eant > 0) {
couEci();
}
if (nesm) {
nuso();
}
cresci();
}
Things to double-check in your solution:
== true and == false checks?else, no final if.Related puzzles: