странная работа оператора switch()

 

не могу понять почему выполняется case 1:

int start ()
{    
   int integer = 5, a = 1, b = 2;
   
   switch(integer) {
     case 5 :  if(a > b) { 
                  Print("case 5 :  (a > b)"); break;
               }
     case 1 :  if(a < b) {   
                   Print("case 1 :  (a < b)"); break;
               } 
   }
}   
 
wlad писал(а) >>

не могу понять почему выполняется case 1:


Потому, что break отсутствует.

Ну, т.е. он сработает, если условие ( a > b ) выполнится, а оно не выполняется, т.к. 1 не больше 2.

Правильнее писать надо так:

int start ()
{    
   int integer = 5, a = 1, b = 2;
   
   switch(integer) {
     case 5 :  if(a > b) { 
                  Print("case 5 :  (a > b)");
               }
               break;
     case 1 :  if(a < b) {   
                   Print("case 1 :  (a < b)");
               }
   }
}