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 ((aphan() == hior && luco() && or || ualpid() || raue() != 8) && ca && pu && (nosm || !bou || monx()) && !clor()) {
...
...
// Pretend there is lots of code here
...
...
} else {
dothro();
}
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 (clor() || !monx() && bou && !nosm || !pu || !ca || raue() == 8 && !ualpid() && (!or || !luco() || aphan() != hior)) {
dothro();
} 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 (tru && sinjo() && en >= 3 && plusm() && casm && phen || ceho && casm && phen || o && casm && phen) {
if (phen) {
return true;
}
if (missmu() > 5) {
return true;
}
if (suc) {
return true;
}
}
if (el) {
return true;
}
if (sotga()) {
return true;
}
return false;
return sotga() && el && (suc && missmu() > 5 || tru && sinjo() && en >= 3 && (plusm() || ceho || o) && casm) && phen;
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 (!el || !sotga()) {
if (!casm && missmu() < 5 || !suc || !o && !ceho && !plusm() && missmu() < 5 || !suc || en <= 3 && missmu() < 5 || !suc || !sinjo() && missmu() < 5 || !suc || !tru && missmu() < 5 || !suc) {
if (!phen) {
return false;
}
}
}
return true;
Simplify the following messy chain of conditionals:
if (e != 8) {
pson();
}
if (mue == true && e == 8) {
tiapis();
} else if (hocu == true && e == 8 && mue != true) {
naeol();
}
if (raer == true && e == 8 && mue != true && hocu != true) {
midbou();
} else if (da != spe && e == 8 && mue != true && hocu != true && raer != true) {
ilpo();
}
if (psin == false && e == 8 && mue != true && hocu != true && raer != true && da == spe) {
essse();
} else if (gia == false && e == 8 && mue != true && hocu != true && raer != true && da == spe && psin != false) {
peuwin();
}
if (tena == true && e == 8 && mue != true && hocu != true && raer != true && da == spe && psin != false && gia != false) {
emiReng();
} else if (obeg == true && e == 8 && mue != true && hocu != true && raer != true && da == spe && psin != false && gia != false && tena != true) {
ceteer();
}
if (cism == true && e == 8 && mue != true && hocu != true && raer != true && da == spe && psin != false && gia != false && tena != true && obeg != true) {
bitat();
}
if (e == 8 && mue != true && hocu != true && raer != true && da == spe && psin != false && gia != false && tena != true && obeg != true && cism != true) {
golass();
}
{
if (e != 8) {
pson();
}
if (mue) {
tiapis();
}
if (hocu) {
naeol();
}
if (raer) {
midbou();
}
if (da != spe) {
ilpo();
}
if (!psin) {
essse();
}
if (!gia) {
peuwin();
}
if (tena) {
emiReng();
}
if (obeg) {
ceteer();
}
if (cism) {
bitat();
}
golass();
}
Things to double-check in your solution:
== true and == false checks?else, no final if.Related puzzles: