Вопросы по коду. - страница 10

 
gnesnyi #:

switch (level) {

   case 1:

      if(...) {...}

      if(...) {...}

      break;

   case 2:     

      if(...) {...}

      break

      if(...) {...}

      break;

}


Знающие люди, подскажите пожалуйста, в каком варианте я правильно break поставил? case 1 или case 2? Или можно вообще без break, так как у меня if() используется. 

Правильно в case 1, потому что в case 2 никогда не будет исполняться код после верхнего break.
 
gnesnyi #:

Или можно вообще без break, так как у меня if() используется. 

Никто же не знает, что у Вас в условиях if. 
Но оператор switch всегда можно заменить операторами if, если программировать умеешь.
 
Здравствуйте как найти имена и значения цены последних трёх объетов?
Файлы:
 
Sergey Gridnev #:
Никто же не знает, что у Вас в условиях if. 
Но оператор switch всегда можно заменить операторами if, если программировать умеешь.
Зачем  вообще использовать switch  если он не знает,что такое break .он там переключать что то собрался или просто условие не может нормально написать ...
 
02031986dima #:
Здравствуйте как найти имена и значения цены последних трёх объетов?
По префиксу либо типу путём перебора.Если цикл плюс то последние 3,если цикл минус то первые 3
 
  string m5_sell_clrRed[];
   ArrayResize(m5_sell_clrRed,100000,100000);
   m5_sell_clrRed[0] = "";
   m5_sell_clrRed[1] = "";
   m5_sell_clrRed[2] = "";
   string Name_1_m5,Name_2_m5,Name_3_m5;
   int j = 0;
   for(int i = ObjectsTotal(OBJ_TREND); i >= 0; i--)
     {
      if(ObjectGet(ObjectName(i),OBJPROP_COLOR) == clrBlue)
        {
         m5_sell_clrRed[j] = ObjectName(i);
         j++;
        }

     }

Вот так сделал. Вроде работает.

 
02031986dima #:
  string m5_sell_clrRed[];
   ArrayResize(m5_sell_clrRed,100000,100000);
   m5_sell_clrRed[0] = "";
   m5_sell_clrRed[1] = "";
   m5_sell_clrRed[2] = "";
   string Name_1_m5,Name_2_m5,Name_3_m5;
   int j = 0;
   for(int i = ObjectsTotal(OBJ_TREND); i >= 0; i--)
     {
      if(ObjectGet(ObjectName(i),OBJPROP_COLOR) == clrBlue)
        {
         m5_sell_clrRed[j] = ObjectName(i);
         j++;
        }

     }

Вот так сделал. Вроде работает.

Принцип правильный но реализация плохая.(ужасней некуда) Ну если на графике есть меньше 200к линий синего цвета и оперативки пару десятков гигабайт на компьютере,то работать это чудо конечно будет