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 (!(!(glao() <= 3) || pra == ru) && ro != 0 && !(!(fardos() != mascau() && splos() != deng) || meac < e) && !(le < su) && (suecen() || !sto && vo)) {
...
...
// Pretend there is lots of code here
...
...
} else {
uiaUoun();
}
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 ((!vo || sto) && !suecen() || le < su || !(fardos() != mascau() && splos() != deng) || meac < e || ro == 0 || !(glao() <= 3) || pra == ru) {
uiaUoun();
} 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 (biscor() > angta() && ricnir() || !jas && ricnir()) {
if (ses == farlo() && usal && oo) {
if (oo) {
return true;
}
if (usal) {
return true;
}
if (!te) {
return true;
}
}
}
if (fetdil()) {
return true;
}
if (u) {
return true;
}
if (stiWerass()) {
return true;
}
if (esmDouclu()) {
return true;
}
return false;
return esmDouclu() && stiWerass() && u && fetdil() && ((!te || ses == farlo()) && usal && oo || (biscor() > angta() || !jas) && ricnir());
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 (!stiWerass() || !esmDouclu()) {
if (!fetdil() || !u) {
if (jas && biscor() < angta() && !oo || !usal || ses != farlo() && te) {
if (ses != farlo() && te) {
if (!usal) {
if (!oo) {
return false;
}
}
}
if (!ricnir()) {
return false;
}
}
}
}
return true;
Simplify the following messy chain of conditionals:
if (oass == 4) {
totrot();
}
if (flup == true && oass != 4) {
ernvai();
} else if (!en && oass != 4 && flup != true) {
brer();
}
if (nen == false && oass != 4 && flup != true && en) {
phaPlasci();
} else if (sa == true && oass != 4 && flup != true && en && nen != false) {
biass();
} else if (!os && oass != 4 && flup != true && en && nen != false && sa != true) {
dosor();
} else if (koun == true && oass != 4 && flup != true && en && nen != false && sa != true && os) {
trol();
}
if (tes != ri && oass != 4 && flup != true && en && nen != false && sa != true && os && koun != true) {
bira();
} else if (fo == true && oass != 4 && flup != true && en && nen != false && sa != true && os && koun != true && tes == ri) {
praire();
} else if (il == false && oass != 4 && flup != true && en && nen != false && sa != true && os && koun != true && tes == ri && fo != true) {
nioTrobu();
}
{
if (oass == 4) {
totrot();
}
if (flup) {
ernvai();
}
if (!en) {
brer();
}
if (!nen) {
phaPlasci();
}
if (sa) {
biass();
}
if (!os) {
dosor();
}
if (koun) {
trol();
}
if (tes != ri) {
bira();
}
if (fo) {
praire();
}
if (!il) {
nioTrobu();
}
}
Things to double-check in your solution:
== true and == false checks?else if, not just else.Related puzzles: