Нужен ли break?
- Войдите на сайт для отправки комментариев
Вс, 19/04/2020 - 13:33
Здраствуйте. Нужны ли break внутри switch, если там есть return?
unsigned char Func(unsigned char method)
{
switch(method)
{
case 1:
//code
return 1;
//break??
case 2:
//code
return 2;
}
}
так проверьте
unsigned char Func(unsigned char method) { switch(method) { case 1: //code return 1; Serial.println(" case 1 after return"); //break?? case 2: //code return 2; Serial.println(" case 2 after return"); } }Спасибо. break не нужен.
break это goto на последнюю скобку switch. А goto истинные программисты боятся использовать. Фобия такая, что их заподозрят, что они не настоящие. Поэтому стыдливо goto заменили на break. Break и без return можно не ставить, тогда после прыжка на нужный case с него и до конца будут выполнятся все case по порядку. И даже видел программу где этим пользовались, собирая вывод на экран.
Да со switch case и не такого можно намудрить. Вот широко известный в узких кругах пример:
n = (count + 7) / 8; if (!count) return; switch (count % 8) { case 0: do { *to++ = *from++; case 7: *to++ = *from++; case 6: *to++ = *from++; case 5: *to++ = *from++; case 4: *to++ = *from++; case 3: *to++ = *from++; case 2: *to++ = *from++; case 1: *to++ = *from++; } while (--n); }