Если вы хотите проверить, является ли число четным или нечетным, используйте оператор по модулю (%
), который возвращает остаток от деления одного числа на другое. Вы должны изменить свою логику:
let x = 11;
let y = 4;
let i = x % y;
if (i % 2) {
console.log("Polo!");
} else {
console.log("Marco!");
}
console.log(i); //So you can see if the above works or not
Вот как это работает:
let i = x % y;
Что он делает, так это делит x
на y
(делит 11
на 4
) и отнимает остаток - в этом случае остаток будет 3
, поэтому i = 3
.
Теперь вот немного хитрости. Если вы хотите узнать, является ли число четным, вы можете использовать % 2
, что мы и делаем в операторе if
. Если число четное, оно вернет 0
, так как не будет остатка от деления на два. Это сложно, но я покажу тебе как смогу:
Если у нас есть 6
(мы знаем, что оно четное), и мы проверяем, является ли оно четным, путем деления его на 2
, оно должно вернуть 0
, так как остатка нет:
И вот как работает наша логика в первом фрагменте, только она использует логические истинные и ложные значения. Ложные значения:
false
0
''
""
``
null
undefined
NaN
Таким образом, если i
является четным, модуль вернет 0
, что означает, что первый оператор if
не будет выполнен, потому что i % 2
вернет 0
, что оценивается как false
, поэтому код будет запустите console.log("Marco!")
, если i
четное, но console.log("Polo!")
, если i
нечетное.
Дополнительное чтение: