Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.10.2010, 22:01
Аватар для simple
Профессор
Отправить личное сообщение для simple Посмотреть профиль Найти все сообщения от simple
 
Регистрация: 23.09.2010
Сообщений: 247

условный оператор If...else
Немогу понять почему так происходит... Например:
if((a==0)&&(b==0)){
 if(c==d){ .....;break;}
 if(c>d){ .....;break;}
}

При условии a=0 и b=0 выполняются все два внутренних if..хотя там стоит определенное условия для их выполнения, плюс еще и break, немогу опнять почему так, чуствую что глупая ошибка но никак ее немогу найти, помогите кто знает.
Ответить с цитированием
  #2 (permalink)  
Старый 01.10.2010, 22:03
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

break из цикла выпрыгивает, а не из произвольного блока.
Ответить с цитированием
  #3 (permalink)  
Старый 01.10.2010, 22:04
Аватар для simple
Профессор
Отправить личное сообщение для simple Посмотреть профиль Найти все сообщения от simple
 
Регистрация: 23.09.2010
Сообщений: 247

Сообщение от Kolyaj Посмотреть сообщение
break из цикла выпрыгивает, а не из произвольного блока.
Понятно, но а по поводу кода есть идеи, почему так делается, не ужели из-за break?
Ответить с цитированием
  #4 (permalink)  
Старый 01.10.2010, 22:06
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Значения c и d выведите и посмотрите.
Ответить с цитированием
  #5 (permalink)  
Старый 01.10.2010, 22:41
Аватар для simple
Профессор
Отправить личное сообщение для simple Посмотреть профиль Найти все сообщения от simple
 
Регистрация: 23.09.2010
Сообщений: 247

ничего не могу понять...
if((_sell>'')&&(_buy>'')){

  /*1 блок*/        if(_buy[0][0]==_sell[0][0]){   
            do{ 
               if(_buy[0][1]-_sell[0][1]<0){_sell[0][1]-=_buy[0][1];k=_buy.shift();;break; }
                 if(_buy[0][1]-_sell[0][1]>0){
                  _buy[0][1]-=_sell[0][1];k=_sell.shift();if(_sell=='')break;}
                     else {k=_sell.shift();_buy.shift();;break;}}
            while((_buy[0][0]>0)&&(_buy[0][0]==_sell[0][0]))} 
//если убираю следующий блок if все работает как часы, но с ним идут глюки, не работает первый блок if...           
 /*2 блок*/          if(_buy[0][0]>_sell[0][0]){
                   do{
                       if(_buy[0][1]-_sell[0][1]>0){
                        _buy[0][1]-=_sell[0][1];k=_sell.shift();
                          if(_sell=='')break;}
                           else {k=_sell.shift();_buy.shift();break;}}
            while((_buy[0][0]>0)&&(_buy[0][0]>_sell[0][0])) }
}

Последний раз редактировалось simple, 01.10.2010 в 22:46.
Ответить с цитированием
  #6 (permalink)  
Старый 01.10.2010, 22:55
Аватар для simple
Профессор
Отправить личное сообщение для simple Посмотреть профиль Найти все сообщения от simple
 
Регистрация: 23.09.2010
Сообщений: 247

все разобрался...ошибка была как всегда на поверхности, добавил else между 1 и 2 блоком, только вот не пойму, почему все таки код не работал, ведь вроде все правильно...главный If и внутри его 2 if...непонятно, может какой нибудь баг?
Ответить с цитированием
  #7 (permalink)  
Старый 01.10.2010, 22:57
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Код форматируйте нормально, будете видеть такие ошибки.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что делает оператор % theYozh Общие вопросы Javascript 14 11.09.2016 08:13
условный определяемые ф-ции Shaci Серверные языки и технологии 6 30.03.2010 18:08
Условный раскрывающийся список на javascript hizer Элементы интерфейса 5 04.02.2010 17:15
object q--b Events/DOM/Window 10 31.01.2009 11:02
Какой оператор на JS равняется оператору and? Forgott Общие вопросы Javascript 2 20.05.2008 10:15