Ваш алгоритм можно улучшить, чтобы корректно учитывать все условия. Вот как можно переписать его для определения итогового процента с учётом бонусного счёта и количества покупок:
let bonus = 3000; // Бонусы
let lotBuy = 2; // Количество покупок
let normalProsent = 10; // Стандартный размер начисления в процентах
let bigProsent = 20; // Повышенный размер начисления в процентах
let finalProsent; // Итоговый процент начисления
// 1. Определяем базовый процент начисления
if (bonus >= 5000) {
finalProsent = bigProsent; // Если бонусы больше или равны 5000, используем 20%
} else {
finalProsent = normalProsent; // В остальных случаях — 10%
}
// 2. Добавляем дополнительный процент, если это не первая покупка
if (lotBuy > 1) {
finalProsent += 5; // Увеличиваем итоговый процент на 5
}
console.log("Процент от покупки: " + finalProsent);
Как это работает:
Шаг 1. Определение базового процента:
Проверяется, сколько бонусных баллов у клиента.
Если на счету
≥
5000
≥5000, берётся базовый процент 20%, иначе — 10%.
Шаг 2. Увеличение процента, если покупок больше одной:
Проверяется, больше ли одной покупок. Если да, то к уже вычисленному проценту прибавляется 5%.
Результат:
Выводится итоговый процент.
Пример работы:
Пример 1:
let bonus = 6000; // Бонусы
let lotBuy = 1; // Количество покупок
bonus>=5000: итоговый процент = 20%.
lotbuy = 1: дополнительных 5% не прибавляется.
Результат: Процент от покупки: 20.
Пример 2:
let bonus = 3000; // Бонусы
let lotBuy = 3; // Количество покупок
bonus<5000: базовый процент = 10%.
LostBuy: > 1: прибавляется 5%.
Результат: Процент от покупки: 15.
Этот код учитывает оба условия, а итоговый процент легко расширить при необходимости добавления новых правил.
// присвоить 10;
} else {
// присвоить 20;
} 2) дополнительный процент +5, если покупок больше одной. if(не первая покупка) {
// увеличить предыдущее значение на 5;
} Как пишу: