JavaScript
Не могу понять выражение Упростите на JS условие if(i-- && xx + yy <= 4 ), когда все переменные- числа!
если i-1 отлично от нуля и x+y<=4
Могу сказать что это умышленно запутанное условие я понимаю как оно работает очень сложно описать на человеческом языке Тут есть вариант если i =0 то к (yy) будет прибавлен (i-1) если в другом случае идёт выбор что прибавлять к (yy) (i-1) или (xx) будет выбрано большее а потом значение сравнивается если полученное число меньше или равно то условие срабатывает! Ответ выше в корне не верен! Надеюсь ты понял моё объяснение...
Если добавить ещё одну переменную скажем ixx то условие можно упростить для понимания вот так
ixx=i&&xx;
i--;
if(ixx!=xx){ixx--;}
ixx+=yy;
if(ixx<= 4)
⚤
Если добавить ещё одну переменную скажем ixx то условие можно упростить для понимания вот так
ixx=i&&xx;
i--;
if(ixx!=xx){ixx--;}
ixx+=yy;
if(ixx<= 4)
⚤
Это выражение понять очень просто, если пошагово пройти его вычисление:
1. Значение переменной i подставляется в выражение и приводится к булевому типу (false при нуле, true при любом другом числовом значении)
2. Значение переменной i уменьшается на единицу (это никак не влияет на результат выражения)
3. Если типкаст на шаге 1 вернул false, то результат всего выражения так же false (и часть выражения правее && не вычисляется); иначе - вычисление продолжается
4. Вычисляется сумма значений переменных xx и yy
5. Если сумма меньше или равна 4, то выражение возвращает true (и тело оператора if выполняется); если же сумма больше 4, то результат выражения false.
1. Значение переменной i подставляется в выражение и приводится к булевому типу (false при нуле, true при любом другом числовом значении)
2. Значение переменной i уменьшается на единицу (это никак не влияет на результат выражения)
3. Если типкаст на шаге 1 вернул false, то результат всего выражения так же false (и часть выражения правее && не вычисляется); иначе - вычисление продолжается
4. Вычисляется сумма значений переменных xx и yy
5. Если сумма меньше или равна 4, то выражение возвращает true (и тело оператора if выполняется); если же сумма больше 4, то результат выражения false.
Похожие вопросы
- Не могу понять почему код на js не работает.
- Не могу понять! Поделитесь опытом в в JS
- Не могу понять RegExp
- Не могу понять, что не так в коде
- Какой смысл от else if в JS?
- Можно ли именовать переменную в JS?
- Не правельно складываются переменные js
- Работа с переменными JS
- вопрос про JS, рандом чисел в %
- Факториал числа JS
неверно. Если i отлично от нуля