Діаграма порівняння:
Основа для порівняння | перерву | продовжити |
---|---|---|
Завдання | Він припиняє виконання залишкової ітерації циклу. | Він припиняє тільки поточну ітерацію циклу. |
Контроль після перерви / продовження | 'break' продовжує керувати програмою до кінця циклу, що містить 'break'. | 'continue' продовжує керувати програмою до наступної ітерації циклу, що містить 'continue'. |
Причини | Це викликає дострокове припинення циклу. | Це призводить до раннього виконання наступної ітерації. |
Продовження | 'break' зупиняє продовження циклу. | 'continue' не припиняє продовження циклу, він лише зупиняє поточну ітерацію. |
Інші види використання | 'break' можна використовувати з 'switch', 'label'. | 'continue' не може бути виконано за допомогою 'switch' і 'label'. |
Визначення перерви
У C ++ розрив має тільки два використання, тобто спочатку він використовується для «припинення виконання справи в операторі switch». По-друге, "припинити цикл і відновити контроль до наступного оператора, що слідує за циклом". Але в перерві Java спочатку використовуються три способи: завершується випадок у комутаторі, другий - припиняється перерва, а другий - як згадувалося раніше, що Java не надає операцію "goto", але розширений перерва форми можна використовувати в місце 'goto'.
Подивимося, кожне використання «перерви» в деталях.
Спочатку використовуйте для припинення виконання випадку в комутаторі. Перемикання перемикача впливає тільки на той комутатор, який його закриває, це не впливає на цикл, що утримує комутатор.
// У контексті C ++. // використання переривання в контексті C ++. switch (ціле число) {case 1: ..... ..... break; випадок 2: ..... ..... перерва; випадок 3: ..... ..... перерва; за замовчуванням: ....... .......}
Друге використовують, щоб примусово припинити цикл і відновити наступну операцію циклу. Як тільки оператор break зустрічається всередині циклу, цей цикл негайно припиняється без виконання залишкового коду в тілі цього циклу, а керування програмою досягає наступного оператора, написаного після цього циклу.
// використовуємо break для виходу з циклу в контекст Java класу main_class {public static void main (string args []) {for (int i = 0; i <100; i ++) {system.out.println ("i:") + i); якщо (i == 10) перерва; // як умова всередині 'if' satistfies керування виходить з циклу 'for'. } system.out.println ("Loop breaks here"); }}
break тільки дозволить програмі вийти з циклу, який його закриває. Якщо перерва використовується з вкладеною петлею, вона вириває тільки внутрішній цикл і не впливає на зовнішній цикл.
Третій використовують, використовуючи розрив як форму goto. Java використовує перерву як форму goto без її проблеми. Оскільки goto надає неструктуровані розгалуження, які важко зрозуміти, а також забороняє оптимізацію компіляторів, Java використовує розширену форму розриву, подібну до того, як гото, і допомагає вийти з більш ніж одного блоку за раз і відновити управління програмою кінець позначеного блоку, згаданий з оператором break.
Декларація:
мітка розриву;
Тут "label" - це ім'я певного блоку коду або ідентифікатора в Java, і цей позначений блок повинен включати оператор break. Позначена операція break використовується для виходу з набору вкладеного циклу. Оскільки зустрічається оператор break, керуючий виходить з позначеного блоку, який згадується з оператором break.
Подивимося це практично.
// використання перерви у вигляді goto в контексті класу Java main_class {public static void main (рядок args []) {boolean t = true; перший {другий {третій {system.out.println ("цей третій блок"); якщо (t) перерва перше; } system.out.println ("цей другий блок"); } system.out.println ("цей перший блок"); } system.out.println ("цей основний блок"); }} // вихід: це третій блок, це основний блок
У цьому коді, коли елемент керування досягає третього блоку, його оператор друку виконується, і після цього управління повертається до оператора 'if', і, як він задоволений, виконується оператор break з міткою. По-перше, прикріплена мітка з перервою, тому керування відновлюється до оператора, написаного після закінчення першого блоку, тобто в основному блоці, який є оператором друку і який виконується.
Визначення Продовжити
Оскільки перерва припиняє залишилася ітерацію циклу і дозволяє керувати виходом з циклу, тут продовжувати роботу кілька працювати як перерва. Оператор continue припиняє виконання залишкового коду в циклі для цієї поточної ітерації і відновлює керування до наступної ітерації цього циклу. Постановка продовження пропускає код для поточної ітерації і передає управління наступній ітерації циклу.
Розберемося з прикладом.
// використання продовження в контексті до C ++. // друкує парне число до 100. class main_class {public static void main (рядок args []) {for (int i = 0; i <100; i ++) {if (i% 2! = 0) продовжується; // продовжуємо відновлювати керування до наступної ітерації в циклі system.out.println ("i:" + i); }}}
У наведеній вище програмі, якщо оператор 'if' виконується, виконується оператор continue, який не дозволяє виконати наступний оператор print і відновити контроль до наступної ітерації циклу 'for'. Якщо i = 1, то умова 'if' виконується і продовжує виконуватися, не виконуючи оператор print для непарного значення 'i', і управління повертається до наступної ітерації циклу 'для i = 2'. Якщо i = 2, то твердження 'if' не задовольняється; оператор continue не виконує і print виводить значення "i", яке є рівним.
Ключові відмінності між перервою та продовженням
- В основному, ключове слово break перериває решту решти ітерацій циклу. З іншого боку, ключове слово continue продовжує тільки поточну ітерацію циклу.
- Як тільки виконується ключове слово break, управління програмою вийде з циклу і відновиться до наступного оператора після циклу. У разі продовження ключового слова управління програмою відновлюється до наступної ітерації циклу.
- Як зазначено вище в кроці, робиться висновок, що після виконання контролю розриву програми виходу з циклу ясно зрозуміло, що розрив викликає дострокове припинення будь-якого циклу. З іншого боку, продовжувати тільки припинити поточну ітерацію і відновити наступну ітерацію циклу, то ми можемо сказати, що продовжує викликати раннє виконання наступної ітерації циклу.
- Ключове слово break завершує всю залишилася ітерацію після його виконання, тож можна сказати, що воно зупиняє продовження циклу, тоді як ключове слово continue продовжує виконання циклу.
- Ключове слово break можна використовувати разом з операторами "switch", а також "label", тоді як ключове слово "continue" не можна використовувати з "switch" і "label".
Висновок:
Оператор break та continue є оператором jump, який передає елемент керування іншій частині програми. Якщо оператор break дає можливість контролю вийти з циклу, оператор continue дозволить керувати наступною ітерацією цього циклу.