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 ((irdnos() <= tred() || prern() && !(je == 7)) && (vitad() || !adsa() && e || oa >= 6 && ondfan()) || trur) {
...
...
// Pretend there is lots of code here
...
...
} else {
hubell();
}
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 (!trur && ((!ondfan() || oa <= 6) && (!e || adsa()) && !vitad() || (je == 7 || !prern()) && irdnos() >= tred())) {
hubell();
} 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 (acaCras() && cleli() != 5 && sness() && othe() && !ol && frad() == 0 && blaPreso()) {
if (phir > thra && cleli() != 5 && sness() && othe() && !ol && frad() == 0 && blaPreso()) {
if (blaPreso()) {
return true;
}
if (frad() == 0) {
return true;
}
if (!ol) {
return true;
}
if (othe()) {
return true;
}
if (sness()) {
return true;
}
if (cleli() != 5) {
return true;
}
if (omuar()) {
return true;
}
}
}
if (osmSlor()) {
return true;
}
return false;
return osmSlor() && (omuar() || phir > thra || acaCras()) && cleli() != 5 && sness() && othe() && !ol && frad() == 0 && blaPreso();
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 (!acaCras() && phir < thra && !omuar() || !osmSlor()) {
if (frad() != 0 || ol || !othe() || !sness() || cleli() == 5) {
if (!blaPreso()) {
return false;
}
}
}
return true;
Simplify the following messy chain of conditionals:
if (se) {
phim();
}
if (ru <= i && !se) {
ukuQot();
}
if (he == true && !se && ru >= i) {
icwhot();
} else if (acan == false && !se && ru >= i && he != true) {
prer();
}
if (im && !se && ru >= i && he != true && acan != false) {
usas();
} else if (da == true && !se && ru >= i && he != true && acan != false && !im) {
edus();
}
if (ne == false && !se && ru >= i && he != true && acan != false && !im && da != true) {
cuust();
} else if (ceg && !se && ru >= i && he != true && acan != false && !im && da != true && ne != false) {
ephter();
}
if (!se && ru >= i && he != true && acan != false && !im && da != true && ne != false && !ceg) {
etpo();
}
{
if (se) {
phim();
}
if (ru <= i) {
ukuQot();
}
if (he) {
icwhot();
}
if (!acan) {
prer();
}
if (im) {
usas();
}
if (da) {
edus();
}
if (!ne) {
cuust();
}
if (ceg) {
ephter();
}
etpo();
}
Things to double-check in your solution:
== true and == false checks?else, no final if.Related puzzles: