Просмотр полной версии : условный оператор If...else
Немогу понять почему так происходит...:blink: Например:
if((a==0)&&(b==0)){
if(c==d){ .....;break;}
if(c>d){ .....;break;}
}
При условии a=0 и b=0 выполняются все два внутренних if..хотя там стоит определенное условия для их выполнения, плюс еще и break, немогу опнять почему так, чуствую что глупая ошибка но никак ее немогу найти, помогите кто знает. :cray:
break из цикла выпрыгивает, а не из произвольного блока.
break из цикла выпрыгивает, а не из произвольного блока.
Понятно, но а по поводу кода есть идеи, почему так делается, не ужели из-за break?
Значения c и d выведите и посмотрите.
ничего не могу понять...
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])) }
}
все разобрался...ошибка была как всегда на поверхности, добавил else между 1 и 2 блоком, только вот не пойму, почему все таки код не работал, ведь вроде все правильно...главный If и внутри его 2 if...непонятно, может какой нибудь баг? :-?
Код форматируйте нормально, будете видеть такие ошибки.
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot