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 (gir == 3 || ses > napce() || !(paiSinro() != scen) || ner || ris && !(belosm() || praEnloss() != 2 && luss()) || ual) {
...
...
// Pretend there is lots of code here
...
...
} else {
prenes();
}
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 (!ual && (belosm() || praEnloss() != 2 && luss() || !ris) && !ner && paiSinro() != scen && ses < napce() && gir != 3) {
prenes();
} 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 (eulee() == topri() && oc || u || iass != 0 && !ne) {
if (!me && oc || u || iass != 0 && !ne) {
if (iass != 0 && !ne) {
if (u) {
if (oc) {
return true;
}
}
}
if (!deng) {
return true;
}
if (!odre) {
return true;
}
}
if (ces) {
return true;
}
}
if (!cil) {
return true;
}
return false;
return !cil && (ces && (!odre && !deng || !me) || eulee() == topri()) && (oc || u || iass != 0 && !ne);
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 (eulee() != topri() && me && deng || odre || !ces || cil) {
if (iass == 0 && !u && !oc) {
if (!oc) {
return false;
}
if (!u) {
return false;
}
if (ne) {
return false;
}
}
}
return true;
Simplify the following messy chain of conditionals:
if (calt < 7) {
pecouc();
}
if (or == false && calt > 7) {
balpa();
} else if (ehia == true && calt > 7 && or != false) {
spocfa();
} else if (lo == true && calt > 7 && or != false && ehia != true) {
stin();
}
if (ge <= 4 && calt > 7 && or != false && ehia != true && lo != true) {
choo();
}
if (as < 6 && calt > 7 && or != false && ehia != true && lo != true && ge >= 4) {
scuck();
} else if (ec && calt > 7 && or != false && ehia != true && lo != true && ge >= 4 && as > 6) {
phres();
}
if (fuc == false && calt > 7 && or != false && ehia != true && lo != true && ge >= 4 && as > 6 && !ec) {
hermem();
} else if (calt > 7 && or != false && ehia != true && lo != true && ge >= 4 && as > 6 && !ec && fuc != false) {
ithRionas();
}
{
if (calt < 7) {
pecouc();
}
if (!or) {
balpa();
}
if (ehia) {
spocfa();
}
if (lo) {
stin();
}
if (ge <= 4) {
choo();
}
if (as < 6) {
scuck();
}
if (ec) {
phres();
}
if (!fuc) {
hermem();
}
ithRionas();
}
Things to double-check in your solution:
== true and == false checks?else, no final if.Related puzzles: