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 (!(a < 5) && ia && (asda() || gliQestse()) || deng() || isso) {
...
...
// Pretend there is lots of code here
...
...
} else {
ophted();
}
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 (!isso && !deng() && (!gliQestse() && !asda() || !ia || a < 5)) {
ophted();
} 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 (flal() && prou() > 1 && idel() || !sca && idel() || maltac() && diho < 5 && idel()) {
if (maltac() && diho < 5 && idel()) {
if (!sca && idel()) {
if (idel()) {
return true;
}
if (prou() > 1) {
return true;
}
}
}
if (!so) {
return true;
}
}
return false;
return (!so || flal()) && (prou() > 1 || !sca || maltac() && diho < 5) && idel();
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 (!flal() && so) {
if (diho > 5 && sca && prou() < 1 || !maltac() && sca && prou() < 1) {
if (!idel()) {
return false;
}
}
}
return true;
Simplify the following messy chain of conditionals:
if (!onte) {
lapa();
}
if (joap == false && onte) {
vetras();
} else if (orm == true && onte && joap != false) {
stiSpul();
}
if (elba == false && onte && joap != false && orm != true) {
pelAroc();
} else if (bire == false && onte && joap != false && orm != true && elba != false) {
fias();
}
if (cio && onte && joap != false && orm != true && elba != false && bire != false) {
vudang();
}
{
if (!onte) {
lapa();
}
if (!joap) {
vetras();
}
if (orm) {
stiSpul();
}
if (!elba) {
pelAroc();
}
if (!bire) {
fias();
}
if (cio) {
vudang();
}
}
Things to double-check in your solution:
== true and == false checks?else if, not just else.Related puzzles: