🔢 Пример 1: Определение четности числа
function checkParity(number) {
if (number % 2 === 0) {
return "Число " + number + " - четное";
} else {
return "Число " + number + " - нечетное";
}
}
Практические демонстрации работы разветвляющихся алгоритмов
function checkParity(number) {
if (number % 2 === 0) {
return "Число " + number + " - четное";
} else {
return "Число " + number + " - нечетное";
}
}
function calculateGrade(score) {
let grade, comment;
if (score < 0 || score > 100) {
return "Ошибка: некорректные баллы";
} else if (score >= 90) {
grade = "5 (отлично)";
comment = "Превосходный результат!";
} else if (score >= 75) {
grade = "4 (хорошо)";
comment = "Хороший результат!";
} else if (score >= 60) {
grade = "3 (удовлетворительно)";
comment = "Удовлетворительный результат";
} else {
grade = "2 (неудовлетворительно)";
comment = "Требуется дополнительная подготовка";
}
return `Оценка: ${grade}\n${comment}`;
}
function determineAgeCategory(age) {
if (age < 0) {
return "Ошибка: возраст не может быть отрицательным";
} else if (age <= 12) {
return "Ребенок (0-12 лет)";
} else if (age <= 17) {
return "Подросток (13-17 лет)";
} else if (age <= 25) {
return "Молодой человек (18-25 лет)";
} else if (age <= 60) {
return "Взрослый (26-60 лет)";
} else {
return "Пожилой человек (60+ лет)";
}
}
function checkTriangle(a, b, c) {
// Проверка на положительность сторон
if (a <= 0 || b <= 0 || c <= 0) {
return "Стороны должны быть положительными!";
}
// Проверка существования треугольника
if (a + b > c && a + c > b && b + c > a) {
let type = "";
// Определение типа треугольника
if (a === b && b === c) {
type = "Равносторонний";
} else if (a === b || b === c || a === c) {
type = "Равнобедренный";
} else {
type = "Разносторонний";
}
// Проверка на прямоугольный треугольник
let sides = [a, b, c].sort((x, y) => x - y);
if (Math.abs(sides[2]**2 - (sides[0]**2 + sides[1]**2)) < 0.01) {
type += " прямоугольный";
}
return `Треугольник существует! Тип: ${type}`;
} else {
return "Треугольник не существует!";
}
}
function playGame(playerChoice) {
const choices = ["", "Камень", "Ножницы", "Бумага"];
const computerChoice = Math.floor(Math.random() * 3) + 1;
let result = `Вы: ${choices[playerChoice]}\n`;
result += `Компьютер: ${choices[computerChoice]}\n\n`;
if (playerChoice === computerChoice) {
result += "Результат: НИЧЬЯ!";
} else if (
(playerChoice === 1 && computerChoice === 2) ||
(playerChoice === 2 && computerChoice === 3) ||
(playerChoice === 3 && computerChoice === 1)
) {
result += "Результат: ВЫ ПОБЕДИЛИ! 🎉";
} else {
result += "Результат: ВЫ ПРОИГРАЛИ! 😢";
}
return result;
}
function calculateTax(income) {
let tax = 0;
let bracket = "";
if (income <= 0) {
return "Доход должен быть положительным!";
} else if (income <= 500000) {
tax = income * 0.13;
bracket = "13% (базовая ставка)";
} else if (income <= 1000000) {
tax = 500000 * 0.13 + (income - 500000) * 0.15;
bracket = "13% до 500к + 15% свыше";
} else if (income <= 5000000) {
tax = 500000 * 0.13 + 500000 * 0.15 + (income - 1000000) * 0.20;
bracket = "Прогрессивная шкала до 20%";
} else {
tax = 500000 * 0.13 + 500000 * 0.15 + 4000000 * 0.20 + (income - 5000000) * 0.25;
bracket = "Максимальная ставка 25%";
}
const effectiveRate = (tax / income * 100).toFixed(2);
const afterTax = income - tax;
return `Налоговая категория: ${bracket}
Сумма налога: ${tax.toLocaleString()} руб.
Эффективная ставка: ${effectiveRate}%
Доход после налогов: ${afterTax.toLocaleString()} руб.`;
}
function checkAccess(age, hasTicket, isStudent, isVIP, hour) {
let accessGranted = false;
let reason = "";
if (isVIP) {
accessGranted = true;
reason = "VIP доступ разрешен в любое время";
} else if (age < 18 && !hasTicket) {
accessGranted = false;
reason = "Несовершеннолетним требуется билет";
} else if (age < 18 && hasTicket && hour >= 22) {
accessGranted = false;
reason = "Несовершеннолетним запрещен доступ после 22:00";
} else if (hasTicket || (isStudent && hour >= 18 && hour < 21)) {
accessGranted = true;
reason = hasTicket ? "Доступ по билету" : "Студенческий доступ";
} else if (age >= 65 && hour >= 9 && hour < 17) {
accessGranted = true;
reason = "Льготный доступ для пенсионеров";
} else {
accessGranted = false;
reason = "Не выполнены условия доступа";
}
return {
granted: accessGranted,
reason: reason
};
}
function determineSeason(month) {
let season, emoji, description;
switch(parseInt(month)) {
case 12:
case 1:
case 2:
season = "Зима";
emoji = "❄️";
description = "Холодное время года";
break;
case 3:
case 4:
case 5:
season = "Весна";
emoji = "🌸";
description = "Время пробуждения природы";
break;
case 6:
case 7:
case 8:
season = "Лето";
emoji = "☀️";
description = "Теплое время года";
break;
case 9:
case 10:
case 11:
season = "Осень";
emoji = "🍂";
description = "Время листопада";
break;
default:
return "Неверный месяц";
}
return `${emoji} ${season}\n${description}`;
}
function determineQuadrant(x, y) {
if (x === 0 && y === 0) {
return "Точка находится в начале координат";
} else if (x === 0) {
return "Точка находится на оси Y";
} else if (y === 0) {
return "Точка находится на оси X";
} else if (x > 0 && y > 0) {
return "I квадрант (x > 0, y > 0)";
} else if (x < 0 && y > 0) {
return "II квадрант (x < 0, y > 0)";
} else if (x < 0 && y < 0) {
return "III квадрант (x < 0, y < 0)";
} else {
return "IV квадрант (x > 0, y < 0)";
}
}
function determineDayType(dayNumber) {
let dayName, dayType, emoji;
switch(parseInt(dayNumber)) {
case 1:
dayName = "Понедельник";
dayType = "Рабочий день";
emoji = "💼";
break;
case 2:
dayName = "Вторник";
dayType = "Рабочий день";
emoji = "💼";
break;
case 3:
dayName = "Среда";
dayType = "Рабочий день";
emoji = "💼";
break;
case 4:
dayName = "Четверг";
dayType = "Рабочий день";
emoji = "💼";
break;
case 5:
dayName = "Пятница";
dayType = "Рабочий день";
emoji = "💼";
break;
case 6:
dayName = "Суббота";
dayType = "Выходной";
emoji = "🎉";
break;
case 7:
dayName = "Воскресенье";
dayType = "Выходной";
emoji = "🎉";
break;
default:
return "Неверный номер дня!";
}
// Использование тернарного оператора
const workHours = dayType === "Рабочий день" ? "9:00 - 18:00" : "Отдых";
return `${emoji} ${dayName}\n${dayType}\nРежим: ${workHours}`;
}
Попробуйте разные значения в каждом примере, включая граничные случаи
Обратите внимание на структуру условий и логические операторы
Попробуйте изменить условия и посмотрите, как изменится результат
Используйте консоль браузера для отладки JavaScript кода