Reputation: 9
Complete noob. Just wanna log the number 0 as zero and not even.
var num = 0
if (num % 2 !== 0) {
console.log("odd")
} else if (num % 2 === 0) {
console.log("even")
} else if (num == 0) {
console.log("zero")
} else {
console.log("error")
}
I expect the output to be "zero" but it keeps logging it as even.
Upvotes: 0
Views: 134
Reputation: 304
in your code you are testing num%2===0 before num==0 that's why you are getting the 'even' as your output try like this and your code will work fine :)
var num= 0
if (num % 2 !==0){
console.log("odd")
} else if (num == 0){
console.log("zero")
} else if (num %2 ===0){
console.log("even")
}else {
console.log("error")
}
Upvotes: 1
Reputation: 18973
Because if else if and else run top down, if it meet a condition, it will ignore other condition.
You can move the else if zero up like this.
var num= 0
if (num % 2 !==0){
console.log("odd")
} else if (num == 0){
console.log("zero")
}
else if (num %2 ===0){
console.log("even")
} else {
console.log("error")
}
Upvotes: 2