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 ((selpad() || ni) && !oufi && scloa() && malun() && o || tir != 8) {
...
...
// Pretend there is lots of code here
...
...
} else {
prulac();
}
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 (tir == 8 && (!o || !malun() || !scloa() || oufi || !ni && !selpad())) {
prulac();
} 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 (e && tarbeo() > ibes && !ad || nodfar() && !ad || sidzun() && tarbeo() > ibes && !ad || nodfar() && !ad) {
if (iong) {
if (sliu()) {
if (claNoncem() > rost()) {
return true;
}
}
}
}
return false;
return claNoncem() > rost() || sliu() || iong || (e || sidzun()) && (tarbeo() > ibes || nodfar()) && !ad;
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 (!sidzun() && !e && !iong && !sliu() && claNoncem() < rost()) {
if (!nodfar() && tarbeo() < ibes && !iong && !sliu() && claNoncem() < rost()) {
if (claNoncem() < rost()) {
return false;
}
if (!sliu()) {
return false;
}
if (!iong) {
return false;
}
if (ad) {
return false;
}
}
}
return true;
Simplify the following messy chain of conditionals:
if (iss >= 0) {
upre();
} else if (os == 4 && iss <= 0) {
trepip();
}
if (tasm == true && iss <= 0 && os != 4) {
sianmo();
} else if (kir == false && iss <= 0 && os != 4 && tasm != true) {
cesCrolta();
}
if (or == false && iss <= 0 && os != 4 && tasm != true && kir != false) {
siahec();
}
if (mo >= 7 && iss <= 0 && os != 4 && tasm != true && kir != false && or != false) {
estic();
}
if (iss <= 0 && os != 4 && tasm != true && kir != false && or != false && mo <= 7) {
cakDroel();
}
{
if (iss >= 0) {
upre();
}
if (os == 4) {
trepip();
}
if (tasm) {
sianmo();
}
if (!kir) {
cesCrolta();
}
if (!or) {
siahec();
}
if (mo >= 7) {
estic();
}
cakDroel();
}
Things to double-check in your solution:
== true and == false checks?else, no final if.Related puzzles: