Добрый день.
В данный момент обучаюсь основам JS.
Есть задача.
Технически задача решена, но хочется довести программу до ума. А конкретно:
- при вводе значений некорректных вроде символов и всего того чтобы не являлось числами, а также при вводе одинаковых значений, программа сначала выдавала сообщение об ошибке в alert, далее выдавала confirm с вопросом о перезапуске, при true программа автоматом посылает обратно в окна prompt для задачи значений, игнорируя весь последующий код, при false - код полностью останавливался.
Сам код:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Дополнительная задача №1</title>
<body>
<script>
// Приветствие
alert('Привет!\nВ этой программе будет проводиться сравнение трех целых чисел, а также сравнение удвоенной разности\
наибольшего наименьшего числа и произведение меньшего и среднего числа.\nВНИМАНИЕ!\nЕсли будет введено число с дробной частью\
то оно будет автоматически округлено до ближайшего целого числа. При вводе других различных симовлов будет выдана ошибка, и программа\
запустится заново.\nВперед!');
// Блок ввода значений
let A = Math.round(+prompt("Введите целое число А:"));
let B = Math.round(+prompt("Введите целое число B:"));
let C = Math.round(+prompt("Введите целое число С:"));
// Блок проверки на корректность значений
if (A == NaN || B == NaN || C == NaN || A == B || A == C || B == C) {
alert ("Ошибка! Значения некорретны или значения совпали!");
let reload = confirm("Перезапустить программу?");
if (reload == true) {
;
} else {
window.location.close();
}
}
// Нахождение среднего числа через сравнение
let averageNumber;
if (A > B && A < C) {
averageNumber = A;
} else if (B > A && B < C) {
averageNumber = B;
} else {
averageNumber = C;
}
// Нахождение минимального и максимального числа
let smallestNumber = Math.min(A, B, C);
let largestNumber = Math.max(A, B, C);
// Вывод результатов сравнения
alert("Наибольшее число - " + largestNumber + "\nСреднее число - " + averageNumber + "\nНаименьшее число - " + smallestNumber);
// Арифметические операции с числами
let doubleDifference = (largestNumber - smallestNumber) * 2;
let multiplication = averageNumber * smallestNumber;
// Сравнение и вывод результатов арифметических операций
if (doubleDifference > multiplication) {
alert("Удвоенная разница наибольшего и наименьшего числа составляет - " + doubleDifference + "\nПроизведение\
среднего и меньшего числа составляет - " + multiplication + "\nСоответственно удвоенная разница больше чем произведение.");
} else if (doubleDifference < multiplication) {
alert("Удвоенная разница наибольшего и наименьшего числа составляет - " + doubleDifference + "\nПроизведение\
среднего и меньшего числа составляет - " + multiplication + "\nСоответственно удвоенная разница меньше чем произведение.");
} else {
alert("Удвоенная разница наибольшего и наименьшего числа составляет - " + doubleDifference + "\nПроизведение\
среднего и меньшего числа составляет - " + multiplication + "\nЗначения совпали. Обе операции равны.");
}
</script>
</body>
</head>
</html>
Любым пожеланиям, подсказкам и критике буду рад.