Показать сообщение отдельно
  #1 (permalink)  
Старый 19.12.2014, 23:08
Новичок на форуме
Отправить личное сообщение для alenka_savage Посмотреть профиль Найти все сообщения от alenka_savage
 
Регистрация: 19.12.2014
Сообщений: 2

Использование комбинаций If-else в одном скрипте
Такая проблемка.Пишу калькулятор для Ethernet. Уровень познания в js минимальный.
По информации в интернете написала интерфейс страницы, нашла бегунки (преподаватель попросил)

Потом начала писать скрипт, требовалось:
- если пользователь выбирает длину сегмента больше, чем возможно для данного типо - ругаться на него и ничего не выдавать,
-если длины для типов соответствуют и все хорошо - выдавать значения и в вердикте писать "поздравляю бла бла бла"
что получилось
<script type="text/javascript">
		function go_result()
		{		
  			var beg_one = trackbar.getObject('one').leftValue;
  			var beg_two = trackbar.getObject('two').leftValue;
  			var value_one = document.Q.rb1.value;
  			var value_two = document.Q.rb2.value;
			if(beg_one <= value_one && beg_two <= value_two)
			{
				if(value_one == 500)
				{
					sum_pvd1  = 11.8 + beg_one*0.0866;
					sum_pvv1 = 16;
				}
				else if(value_one == 185)
				{
					sum_pvd1 = 11.8 + beg_one*0.1026;
					sum_pvv1 = 16;
				}
				else if(value_one == 100)
				{
					sum_pvd1 = 15.3 + beg_one*0.113;
					sum_pvv1 = 10.5;
				}
				else(value_one == 2000)
				{
					sum_pvd1 = 12.3 + beg_one*0.1;
					sum_pvv1 = 10.5;
				}

				if(value_two == 500)
				{
					sum_pvd2  = 169.5 + beg_two*0.0866;
					sum_pvv2 = 11;
				}
				else if(value_two == 185)
				{
					sum_pvd2 = 169.5 + beg_two*0.1026;
					sum_pvv2 = 11;
				}
				else if(value_two == 100)
				{
					sum_pvd2 = 165 + beg_two*0.113;
					sum_pvv2 = 2;
				}
				else(value_two == 2000)
				{
					sum_pvd2 = 156.5 + beg_two*0.1;
					sum_pvv2 = 8 ;
				}
			}
			else
			{
				sum_pvv2 =0;
				sum_pvd2 =0;
			}
			document.C.bars.value = (sum_pvd2 > 0) ? 'Поздравляю! У вас получилась корректная схема ЛВС Ethernet.' : 'Так делать не стоит. Прочитайте правила выборы длины сегмента и попробуйте еще раз.';
			document.C.pvd.value = sum_pvd1 + sum_pvd2;
			document.C.pvv.value = sum_pvv1 + sum_pvv2;

		}

Тут trackbar.getObject('one').leftValue это информация о значении бегунка 1 , trackbar.getObject('tow').leftValue - о бегунке 2.
document.Q.rb1.value - 1й набор выкотолотых точек, а var value_one = document.Q.rb2.value 2й набор.
Проблема в том что PVV и PVD всегда выдает одинаковое , какой бы я не тыкала тип . Всегда выдает 18.5 для PVV. Слава богу смогла добиться, чтобы когда вылазило за максимальную длину ругался .
18.5 - это 10.5 + 8 , ну то есть заходит всегда в оба else. Что делать не знаю, потому что в теории вообще не сильна, делала по аналогии все.
Думала как бы сделать в одну комбинацию if-else , но у меня максимальное количество сегментов может быть 5(это тут укорченный вариант с 2мя сегментами) , то есть получается c таким подходом 4 в пятой степени if`ов тогда , то есть 1024 . Это ужассс
Помогите )
Ответить с цитированием