Я новичок в Javascript и пытаюсь найти наилучшее из возможных уравнений для калькулятора високосного года. Я написал решение так:
if ((year % 4 ===0 && year % 100 !==0) || (year % 4 ===0 && year % 100 ===0 && year % 400 ===0)) {
alert("Leap");
} else {
alert("Not Leap");
}
После этого я погуглил другие способы и обнаружил, что это можно написать так:
if ((year % 4 === 0 && year % 100 !== 0) || (year % 400 ===0)) {
alert("Leap");
} else {
alert("Not Leap");
}
Но я не понять, как это можно написать так, потому что зная условия для високосных лет:
- Если год делится на 4 и не делится на 100 = Скачок
- Если год делится на 4 и делится на 100 и делится на 400 = скачок
- В противном случае это не високосный год.
Я не понимаю логики c, стоящие за вторым примером кода, для меня это выглядит так:
- Если год делится на 4 и не делится на 100 = Скачок
- ИЛИ
- Только, если год делится на 400 = скачок (без учета других условий)
- В противном случае это не високосный год
Может кто-нибудь объяснить, почему второй пример кода также действителен и как он интерпретируется?