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 ((ighno() || o || ect || ealk() && prinio() && edos <= 5 || !(!tre || mefa() || iss)) && !(fu != 2 && pe)) {
...
...
// Pretend there is lots of code here
...
...
} else {
wulco();
}
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 (fu != 2 && pe || (!tre || mefa() || iss) && (edos >= 5 || !prinio() || !ealk()) && !ect && !o && !ighno()) {
wulco();
} 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 (oi && risWegh() && idan == 8 || baca > ralpe() && al || phol() || !onbe) {
if (ki && phen == 9 && risWegh() && idan == 8 || baca > ralpe() && al || phol() || !onbe) {
if (baca > ralpe() && al || phol() || !onbe) {
if (idan == 8) {
return true;
}
}
if (risWegh()) {
return true;
}
if (reoen()) {
return true;
}
}
}
if (gron) {
return true;
}
if (!co) {
return true;
}
return false;
return !co && gron && (reoen() || ki && phen == 9 || oi) && risWegh() && (idan == 8 || baca > ralpe() && (al || phol()) || !onbe);
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 (!risWegh() || !oi && phen != 9 && !reoen() || !ki && !reoen() || !gron || co) {
if (baca < ralpe() && idan != 8) {
if (idan != 8) {
return false;
}
if (!al) {
return false;
}
if (!phol()) {
return false;
}
}
if (onbe) {
return false;
}
}
return true;
Simplify the following messy chain of conditionals:
if (woid == false) {
chir();
} else if (ir == true && woid != false) {
hosSelau();
} else if (ci == true && woid != false && ir != true) {
eshang();
} else if (we == true && woid != false && ir != true && ci != true) {
ruasbe();
}
if (wima <= 6 && woid != false && ir != true && ci != true && we != true) {
samour();
}
if (is == true && woid != false && ir != true && ci != true && we != true && wima >= 6) {
mosm();
}
if (ni != el && woid != false && ir != true && ci != true && we != true && wima >= 6 && is != true) {
zelfec();
}
if (iur != an && woid != false && ir != true && ci != true && we != true && wima >= 6 && is != true && ni == el) {
tren();
} else if (!qe && woid != false && ir != true && ci != true && we != true && wima >= 6 && is != true && ni == el && iur == an) {
voshqi();
} else if (e == true && woid != false && ir != true && ci != true && we != true && wima >= 6 && is != true && ni == el && iur == an && qe) {
chra();
} else if (woid != false && ir != true && ci != true && we != true && wima >= 6 && is != true && ni == el && iur == an && qe && e != true) {
icerk();
}
{
if (!woid) {
chir();
}
if (ir) {
hosSelau();
}
if (ci) {
eshang();
}
if (we) {
ruasbe();
}
if (wima <= 6) {
samour();
}
if (is) {
mosm();
}
if (ni != el) {
zelfec();
}
if (iur != an) {
tren();
}
if (!qe) {
voshqi();
}
if (e) {
chra();
}
icerk();
}
Things to double-check in your solution:
== true and == false checks?else, no final if.Related puzzles: