Обработка конструкции switch - возможно баг

 

Готовлюсь к чемпионату, и для исследования просадок и определения оптимального

размера лота (живучего, при котором мой советник выживет "замочит" всех остальных)

решил прогнать своего MonsterGrail поквартально, и обнаружил следующую особенность:

Так работает правильно:

int TimeQuarter(){

int nReturn=1;
int nMonth=TimeMonth(TimeCurrent());

if(nMonth>=1 && nMonth<= 3)nReturn=1;
if(nMonth>=4 && nMonth<= 6)nReturn=2;
if(nMonth>=7 && nMonth<= 9)nReturn=3;
if(nMonth>=10 && nMonth<=12)nReturn=4;

return(nReturn);
}

А вот так функция возвращает значение только 4:

int TimeQuarter(){

int nReturn=1;
int nMonth=TimeMonth(TimeCurrent());

switch(nMonth){

case 1: nReturn=1;
case 2: nReturn=1;
case 3: nReturn=1;
case 4: nReturn=2;
case 5: nReturn=2;
case 6: nReturn=2;
case 7: nReturn=3;
case 8: nReturn=3;
case 9: nReturn=3;
case 10: nReturn=4;
case 11: nReturn=4;
case 12: nReturn=4;
}
return(nReturn);
}

 
Забыл вставить оператор break после каждой строки выбора.
 
solandr:
Забыл вставить оператор break после каждой строки выбора.
Точно, блин!