for (i=0;i<10;i++) {
if (i%2 == 0)
console.log( i + "is even number")
else
console.log(i + "is not even")
}
working, but
for (i=0;i<10;i++) {
if (!i%2)
console.log( i + "is even number")
else
console.log(i + "is not even")
}
not working , why ? and when would i%2 becomes true ?
Try following
for (i=0;i<10;i++) {
if (!(i%2))
console.log( i + "is even number")
else
console.log(i + "is not even")
}
You need to look at operator precedence
What went wrong?
As per operator precedence !i%2 is evaluated as (!i)%2 Hence, for every value of i greater than 0, !i becomes false and false%2 is 0
Because the logical NOT (!) operator takes precedence over the remainder operator (%). So your code is actually evaluated as:
((!i)%2)
Which will always return false (except when i is 0).
Try this instead:
if (!(i%2))
See Operator Precedence
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