почему данная программа дает true и if выполняется?
if(arr[i] == 1 || 2) Где i != 1 или 2. Мне кажется, что если сравнить, скажем, 3 == 1 || 2 будет false, но, однако, оно дает true.
Задача в том, чтобы сравнить элемент массива, и если элемент массива i != 1 или 2, то оно выводило бы некое сообщение
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
Это - if(arr[i] == 1 || 2) - не сравнивает arr[i] сначала с 1, а потом с 2, как Вы, вероятно, думаете.
Оно эквивалентно if ((arr[i] == 1) || (2)). Хоть arr[i] может быть равно или не равно единице, второй операнд логического ИЛИ - 2 - всегда является true в булевском смысле. Значит и все выражение будет true независимо от значения первого операнда.
if (arr[i] == 1 || arr[i] == 2)
console.log(3 == 1 || 2);
console.log((3 == 1) || (2));
console.log(!!(3 == 1 || 2));