Наредбе break и continue називамо још и наредбама скока. Ове наредбе безусловно преносе контролу даље.
Наредба break омогућава превремен излаз из петље. Ова наредба се може налазити само унутар једне петље и завршава извршавање најуже обухватајуће наредбе. Контрола се даље преноси наредби која следи иза завршене наредбе.
Наредба continue се може налазити само унутар једне петље. Она доводи до преношења контроле делу за настављање петље најуже обухватајуће такве наредбе. Наредба continue прекида само текућу итерацију петље. Не прекида петљу, већ само изазива почетак наредне итерације обухватајуће for, while или do while петље. У петљама while и do while то значи да се услов одмах проверава. Међутим, у for петљи то значи да се контрола преноси на корак увећања, односно на увећање бројача, а потом на испитивање услова.
Наредба continue је повезана са наредбом break, али се ређе користи.
Ове две наредбе можемо представити и блок дијаграмима. Блок дијаграм за наредбу break исти је у свим петљама (Слика 8.13), док се блок дијаграм за наребу continue разликује у зависности од тога унутар које петље се налази. Тако можемо видети како изгледа блок дијаграм за наредбу continue у for петљи (Слика 8.14), као и како изгледа када се налази унутар while (Слика 8.15) или do while петље (Слика 8.16).
Наредба break моментално прекида петљу. Текућа итерација се прекида, а наредне итерације се не извршавају. Програм наставља да извршава наредбе које следе након петље. |
||
Слика 8.13. Блок дијаграм за наредбу break |
Слика 8.14. Блок дијаграми за наредбу continue која се налази унутар for петље |
Слика 8.15. Блок дијаграми за наредбу continue која се налази унутар while петље |
Слика 8.16. Блок дијаграми за наредбу continue која се налази унутар do while петље |
Пример 1. У овом примеру можемо приметити да се бесконачна петља једино може прекинути наредбом break.
for ( ; ; )
{
...
break;
...
}
Пример 2. У овом примеру можемо видети на који начин можемо искористити наредбу continue. Ако желимо да корисник унесе неки цео број n и да исписујемо само непарне бројеве до тог броја који је корисник унео, тада можемо искористити следећи код:
for (int i = 0; i < n; i++)
{
if (i % 2 == 0)
continue;
label1.Text = label1.Text + i + " , ";
}