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 ((!(!ot && lian) || !an && !a) && (crided() || hi && o > 9 && deesm() && !ue) && vissi()) {
...
...
// Pretend there is lots of code here
...
...
} else {
hisre();
}
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 (!vissi() || (ue || !deesm() || o < 9 || !hi) && !crided() || (a || an) && !ot && lian) {
hisre();
} 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 (!ost && ca && couo() && !egem || upec() && !egem || cic <= 1 && !egem) {
if (cic <= 1 && !egem) {
if (upec() && !egem) {
if (!egem) {
return true;
}
if (couo()) {
return true;
}
}
if (ca) {
return true;
}
}
if (pa > 0) {
return true;
}
}
if (fism <= 8) {
return true;
}
if (lauMiar()) {
return true;
}
if (fladeg()) {
return true;
}
if (el) {
return true;
}
return false;
return el && fladeg() && lauMiar() && fism <= 8 && (pa > 0 || !ost) && (ca && (couo() || upec()) || cic <= 1) && !egem;
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 (!fladeg() || !el) {
if (cic >= 1 && !upec() && !couo() || !ca || ost && pa < 0 || fism >= 8 || !lauMiar()) {
if (egem) {
return false;
}
}
}
return true;
Simplify the following messy chain of conditionals:
if (!ia) {
ikaTrea();
}
if (gier == false && ia) {
ilsioc();
} else if (iu && ia && gier != false) {
bairil();
}
if (!beus && ia && gier != false && !iu) {
spont();
} else if (rer == true && ia && gier != false && !iu && beus) {
zong();
}
if (ne == true && ia && gier != false && !iu && beus && rer != true) {
fiou();
}
if (uc == true && ia && gier != false && !iu && beus && rer != true && ne != true) {
panror();
}
if (clen == true && ia && gier != false && !iu && beus && rer != true && ne != true && uc != true) {
dest();
} else if (dri == true && ia && gier != false && !iu && beus && rer != true && ne != true && uc != true && clen != true) {
celi();
}
if (ia && gier != false && !iu && beus && rer != true && ne != true && uc != true && clen != true && dri != true) {
nolash();
}
{
if (!ia) {
ikaTrea();
}
if (!gier) {
ilsioc();
}
if (iu) {
bairil();
}
if (!beus) {
spont();
}
if (rer) {
zong();
}
if (ne) {
fiou();
}
if (uc) {
panror();
}
if (clen) {
dest();
}
if (dri) {
celi();
}
nolash();
}
Things to double-check in your solution:
== true and == false checks?else, no final if.Related puzzles: