Is there any easier way of checking one variables value against several others? Currently I'm using code like this:
if(a[i] == a[i-13] || a[i] == a[i+13] || a[i] == a[i-1] || a[i] == a[i+1]){
//my code
}
Now, is there a shorter way to do this? I know I can use a switch, but then I'd have to write my function several times. Is there an easier way of doing this?
You do not need to write your function several times with a switch:
switch(a[i]){
case a[i-13]:
case a[i+13]:
case a[i-1]:
case a[i+1]:
// This code will run if any of the above cases are true.
}
Amusingly, however, this is just about the same number of characters (depending on how you format it). A switch statement in general is less powerful than an explicit if
statement, but in this case I find it clearer and less error-prone.
And better yet:
if (matchesAdjacent(a, i)) {
// etc.
}
Move the logic out of the mainline code into an appropriately-named method.
This also lets you do your bounds checking there (if it isn't already guaranteed elsewhere).
No. However the following looks neater:
if(a[i] == a[i-13] ||
a[i] == a[i+13] ||
a[i] == a[i-1] ||
a[i] == a[i+1]
) {
//my code
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With