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 (!et && neng <= iopo || (ta || !whiCedcin() && sufa() || lon) && is && (roler() || o)) {
...
...
// Pretend there is lots of code here
...
...
} else {
presra();
}
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 ((!o && !roler() || !is || !lon && (!sufa() || whiCedcin()) && !ta) && (neng >= iopo || et)) {
presra();
} 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 (socsul() && awasm() > 7 && sian() != pri && pruten() < peca || ui && awasm() > 7 && sian() != pri && pruten() < peca || pese() && rorEnden() && awasm() > 7 && sian() != pri && pruten() < peca) {
if (oblo) {
if (oodTrito()) {
return true;
}
}
if (!ud) {
return true;
}
}
return false;
return !ud && (oodTrito() || oblo) || (socsul() || ui || pese() && rorEnden()) && awasm() > 7 && sian() != pri && pruten() < peca;
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 (!rorEnden() && !ui && !socsul() && !oblo && !oodTrito() || ud || !pese() && !ui && !socsul() && !oblo && !oodTrito() || ud) {
if (sian() == pri && !oblo && !oodTrito() || ud || awasm() < 7 && !oblo && !oodTrito() || ud) {
if (ud) {
if (!oodTrito()) {
return false;
}
if (!oblo) {
return false;
}
}
if (pruten() > peca) {
return false;
}
}
}
return true;
Simplify the following messy chain of conditionals:
if (uc == false) {
nisin();
}
if (ir == false && uc != false) {
iosm();
}
if (ca == true && uc != false && ir != false) {
faca();
} else if (ho == false && uc != false && ir != false && ca != true) {
iori();
}
if (pral == true && uc != false && ir != false && ca != true && ho != false) {
cenung();
}
if (hasa == true && uc != false && ir != false && ca != true && ho != false && pral != true) {
broc();
}
if (si == true && uc != false && ir != false && ca != true && ho != false && pral != true && hasa != true) {
nenSetid();
} else if (ioa == false && uc != false && ir != false && ca != true && ho != false && pral != true && hasa != true && si != true) {
owhat();
} else if (uc != false && ir != false && ca != true && ho != false && pral != true && hasa != true && si != true && ioa != false) {
drass();
}
{
if (!uc) {
nisin();
}
if (!ir) {
iosm();
}
if (ca) {
faca();
}
if (!ho) {
iori();
}
if (pral) {
cenung();
}
if (hasa) {
broc();
}
if (si) {
nenSetid();
}
if (!ioa) {
owhat();
}
drass();
}
Things to double-check in your solution:
== true and == false checks?else, no final if.Related puzzles: