функция в JS c If
Создай функцию getLargestExpressionResult, которая принимает два числа a и b и возвращает наибольший возможный результат среди выражений:
a + b
a - b
a * b
a / bограничения:
Имей в виду, что a и b могут быть отрицательными. Не используй тернарный оператор или ключевое слово else. Не используй объект Math.
Почему-то у меня работает только сложение.
'use strict';
/**
* @param {number} a
* @param {number} b
*
* @returns number
*/
// write code below this line
function getLargestExpressionResult(a, b) {
if (a + b) {
return a + b;
}
if (a - b) {
return a - b;
}
if (a * b) {
return a * b;
}
if (a / b) {
return a / b;
}
}
Ответы (2 шт):
function getLargestExpressionResult(a, b) {
let max = a + b;
if (a - b > max) {
max = a - b;
}
if (a * b > max) {
max = a * b;
}
if (a / b > max) {
max = a / b;
}
return max;
}
Вы же все время возвращали сумму и все. А нужно максимальное. Сначала записываем в макс одно из выражений, а потом проверяем остальные. Если кто-то больше, записываем его в макс.
if (a + b): a + b - некое число, а любое число в логическом контексте будет true, кроме числа 0, вот почти всегда и возвращалось a + b.
Не используй тернарный оператор или ключевое слово else. Не используй объект Math.
Так не надо делать, но язык позволяет:
- Сортирует 4 числа по убыванию, берет первое. Array.sort()
function getLargestExpressionResult(a, b) {
return [ a + b, a - b, a * b, a / b ].sort( (a,b) => b - a )[0];
}
- Логическое "И"
&&, вторая часть не выполнится, если первая окажетсяfalse
function getLargestExpressionResult(a, b) {
let max = a + b;
(a - b > max) && (max = a - b);
(a * b > max) && (max = a * b);
(a / b > max) && (max = a / b);
return max;
}
function getLargestExpressionResult(a, b) {
let max = a + b;
switch (a - b > max) { case true: max = a - b }
switch (a * b > max) { case true: max = a * b }
switch (a / b > max) { case true: max = a / b }
return max;
}
