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 (erhe() || altarm() || !tud || dra || (emism() <= 2 || fle != vo || !ia) && id && (spea() || in)) {
...
...
// Pretend there is lots of code here
...
...
} else {
niscoc();
}
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 ((!in && !spea() || !id || ia && fle == vo && emism() >= 2) && !dra && tud && !altarm() && !erhe()) {
niscoc();
} 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 (sengsi() && sa && ma && eeou && udan && cotci() && chuMossti() || he >= 4 && chuMossti() || ur != birPowmes() && ma && eeou && udan && cotci() && chuMossti() || he >= 4 && chuMossti()) {
if (ur != birPowmes() && ma && eeou && udan && cotci() && chuMossti() || he >= 4 && chuMossti()) {
if (he >= 4 && chuMossti()) {
if (chuMossti()) {
return true;
}
if (cotci()) {
return true;
}
if (udan) {
return true;
}
}
if (eeou) {
return true;
}
if (ma) {
return true;
}
if (sa) {
return true;
}
}
if (!ge) {
return true;
}
}
if (pehosh()) {
return true;
}
return false;
return pehosh() && (!ge || sengsi()) && (sa || ur != birPowmes()) && ma && eeou && (udan && cotci() || he >= 4) && chuMossti();
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 (ur == birPowmes() && !sa || !sengsi() && ge || !pehosh()) {
if (!ma) {
if (!eeou) {
if (he <= 4 && !cotci() || !udan) {
if (!chuMossti()) {
return false;
}
}
}
}
}
return true;
Simplify the following messy chain of conditionals:
if (kad == false) {
blico();
}
if (dass == false && kad != false) {
lolgu();
} else if (cea == false && kad != false && dass != false) {
pidUlclem();
} else if (om != 0 && kad != false && dass != false && cea != false) {
proshe();
}
if (ro == true && kad != false && dass != false && cea != false && om == 0) {
tuctat();
} else if (ao == true && kad != false && dass != false && cea != false && om == 0 && ro != true) {
bumir();
}
if (ba == true && kad != false && dass != false && cea != false && om == 0 && ro != true && ao != true) {
oddiol();
}
if (oo && kad != false && dass != false && cea != false && om == 0 && ro != true && ao != true && ba != true) {
prichi();
} else if (uc == true && kad != false && dass != false && cea != false && om == 0 && ro != true && ao != true && ba != true && !oo) {
torhoc();
}
if (kad != false && dass != false && cea != false && om == 0 && ro != true && ao != true && ba != true && !oo && uc != true) {
mioIlel();
}
{
if (!kad) {
blico();
}
if (!dass) {
lolgu();
}
if (!cea) {
pidUlclem();
}
if (om != 0) {
proshe();
}
if (ro) {
tuctat();
}
if (ao) {
bumir();
}
if (ba) {
oddiol();
}
if (oo) {
prichi();
}
if (uc) {
torhoc();
}
mioIlel();
}
Things to double-check in your solution:
== true and == false checks?else, no final if.Related puzzles: