Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   условный оператор If...else (https://javascript.ru/forum/misc/12128-uslovnyjj-operator-if-else.html)

simple 01.10.2010 22:01

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

При условии a=0 и b=0 выполняются все два внутренних if..хотя там стоит определенное условия для их выполнения, плюс еще и break, немогу опнять почему так, чуствую что глупая ошибка но никак ее немогу найти, помогите кто знает. :cray:

Kolyaj 01.10.2010 22:03

break из цикла выпрыгивает, а не из произвольного блока.

simple 01.10.2010 22:04

Цитата:

Сообщение от Kolyaj (Сообщение 72761)
break из цикла выпрыгивает, а не из произвольного блока.

Понятно, но а по поводу кода есть идеи, почему так делается, не ужели из-за break?

Kolyaj 01.10.2010 22:06

Значения c и d выведите и посмотрите.

simple 01.10.2010 22:41

ничего не могу понять...
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:55

все разобрался...ошибка была как всегда на поверхности, добавил else между 1 и 2 блоком, только вот не пойму, почему все таки код не работал, ведь вроде все правильно...главный If и внутри его 2 if...непонятно, может какой нибудь баг? :-?

Kolyaj 01.10.2010 22:57

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


Часовой пояс GMT +3, время: 16:45.