Показать сообщение отдельно
  #1 (permalink)  
Старый 17.11.2016, 18:40
Новичок на форуме
Отправить личное сообщение для Kaytoxe Посмотреть профиль Найти все сообщения от Kaytoxe
 
Регистрация: 17.11.2016
Сообщений: 3

Преобразование простейшего скрипта
Всем привет, написал простенькую программу, решил её сократить до максимума (использование компрессоров не интересует). Сократил уже в 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

Последний раз редактировалось Kaytoxe, 17.11.2016 в 18:46. Причина: Не читабельно
Ответить с цитированием