Всем привет, написал простенькую программу, решил её сократить до максимума (использование компрессоров не интересует). Сократил уже в 1.5 раза. Хотел спросить, какие хитрости ещё можно применить по сокращению данной проги, не жертвуя читабельностью кода и сохраняя основные модули работы (чек возраста, проверка на число, умножение).
Собсно сам код.
"use strict";
// Подключение стандарта ES5 (Esma Script 5)
// Разработка цикла для операции умножения
// Проверка возраста
for (;;) {
var checkAge = prompt ('Ресурс предназначен для совершенолетних пользователей. Введите ваш возраст.', 'используйте клавиатуру');
var Age;
if ( isNaN(checkAge) ) {
var quest = confirm('Вы ввели не число. Попробовать снова?'); // Не числовой тип данных
if (quest) { continue; } else { break; } // Повтор/Отмена цикла
} else {
if (checkAge < 18) {
alert('Ресурс недоступен несовершенолетним лицам'); // Меньше 18 лет
break;
} else {
alert('Добро пожаловать!'); // Всё ОК!
Age = 1;
break;
}
}
}
// Тело программы
for (;;) {
if ( isNaN(Age) ) {
alert('Программа отклонена'); // Отклонение программы
break;
} else {
// Вычислительная часть
var firNum = prompt('Первый множитель',''); // Ввод операндов
var secNum = prompt('Второй множитель','');
if ( isNaN(firNum) ) { // Проверка на число ПЕРВОЕ
var quest = confirm('Вы ввели не число. Попробовать снова?');
if (quest) { continue; } else { break; } // Повтор/Отмена цикла
} else {
if ( isNaN(secNum) ) { // Проверка на число ВТОРОЕ
var quest = confirm('Вы ввели не число. Попробовать снова?');
if (quest) { continue; } else { break; } // Повтор/Отмена цикла
} else {
var result = firNum * secNum;
alert( 'Произведение ' + firNum + ' и ' + secNum + ' равно ' + result );
break;
}
}
// Конец вычислительной части
}
}
alert('Конец программы');
//The end