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 ((strest() != 4 || !pi) && (pui && thun() || osgo()) || laplen() && (ele >= 2 || ermna() && (ool == stiSomes() || criro()))) {
...
...
// Pretend there is lots of code here
...
...
} else {
daong();
}
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 (((!criro() && ool != stiSomes() || !ermna()) && ele <= 2 || !laplen()) && (!osgo() && (!thun() || !pui) || pi && strest() == 4)) {
daong();
} 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 (!a || fassac() > 1) {
if (presh() && ashpre() >= 3 || !i && ee) {
if (ue && o && dorre() && pemud()) {
if (pemud()) {
return true;
}
if (dorre()) {
return true;
}
if (o) {
return true;
}
if (arpo() == 9) {
return true;
}
}
}
}
return false;
return (arpo() == 9 || ue) && o && dorre() && pemud() || presh() && ashpre() >= 3 || !i && ee || !a || fassac() > 1;
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 (i && ashpre() <= 3 && !pemud() || !dorre() || !o || !ue && arpo() != 9 || !presh() && !pemud() || !dorre() || !o || !ue && arpo() != 9) {
if (!presh() && !pemud() || !dorre() || !o || !ue && arpo() != 9) {
if (!dorre() || !o || !ue && arpo() != 9) {
if (!pemud()) {
return false;
}
}
if (ashpre() <= 3) {
return false;
}
}
if (!ee) {
return false;
}
}
if (a) {
return false;
}
if (fassac() < 1) {
return false;
}
return true;
Simplify the following messy chain of conditionals:
if (spha == false) {
kown();
} else if (er == false && spha != false) {
cupar();
}
if (di == true && spha != false && er != false) {
bourda();
} else if (pue == true && spha != false && er != false && di != true) {
wapiwn();
} else if (rhio == tias && spha != false && er != false && di != true && pue != true) {
biss();
} else if (ho && spha != false && er != false && di != true && pue != true && rhio != tias) {
peca();
} else if (otpo == 6 && spha != false && er != false && di != true && pue != true && rhio != tias && !ho) {
puost();
} else if (eno == true && spha != false && er != false && di != true && pue != true && rhio != tias && !ho && otpo != 6) {
musnir();
} else if (in == true && spha != false && er != false && di != true && pue != true && rhio != tias && !ho && otpo != 6 && eno != true) {
eesFis();
}
if (mi == true && spha != false && er != false && di != true && pue != true && rhio != tias && !ho && otpo != 6 && eno != true && in != true) {
stelge();
}
{
if (!spha) {
kown();
}
if (!er) {
cupar();
}
if (di) {
bourda();
}
if (pue) {
wapiwn();
}
if (rhio == tias) {
biss();
}
if (ho) {
peca();
}
if (otpo == 6) {
puost();
}
if (eno) {
musnir();
}
if (in) {
eesFis();
}
if (mi) {
stelge();
}
}
Things to double-check in your solution:
== true and == false checks?else if, not just else.Related puzzles: