Рекомендуємо, 2024

Вибір Редакції

Різниця між перервою і продовженням

І «перерва», і «продовжити» - це висловлювання «стрибка», які передають управління програмою іншій частині програми. C ++ підтримує чотири оператори стрибка, а саме 'return', 'goto', 'break' і 'continue'. Java підтримує три операції стрибка 'break' 'continue' і 'return'. Основна відмінність між перервою і продовженням полягає в тому, що перерва використовується для негайного припинення циклу, тоді як продовження завершення поточної ітерації і відновлення контролю до наступної ітерації циклу. Давайте вивчимо різницю між перервою і продовжуємо в контексті C ++ і Java.

Діаграма порівняння:

Основа для порівнянняперервупродовжити
Завдання
Він припиняє виконання залишкової ітерації циклу.Він припиняє тільки поточну ітерацію циклу.
Контроль після перерви / продовження'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", яке є рівним.

Ключові відмінності між перервою та продовженням

  1. В основному, ключове слово break перериває решту решти ітерацій циклу. З іншого боку, ключове слово continue продовжує тільки поточну ітерацію циклу.
  2. Як тільки виконується ключове слово break, управління програмою вийде з циклу і відновиться до наступного оператора після циклу. У разі продовження ключового слова управління програмою відновлюється до наступної ітерації циклу.
  3. Як зазначено вище в кроці, робиться висновок, що після виконання контролю розриву програми виходу з циклу ясно зрозуміло, що розрив викликає дострокове припинення будь-якого циклу. З іншого боку, продовжувати тільки припинити поточну ітерацію і відновити наступну ітерацію циклу, то ми можемо сказати, що продовжує викликати раннє виконання наступної ітерації циклу.
  4. Ключове слово break завершує всю залишилася ітерацію після його виконання, тож можна сказати, що воно зупиняє продовження циклу, тоді як ключове слово continue продовжує виконання циклу.
  5. Ключове слово break можна використовувати разом з операторами "switch", а також "label", тоді як ключове слово "continue" не можна використовувати з "switch" і "label".

Висновок:

Оператор break та continue є оператором jump, який передає елемент керування іншій частині програми. Якщо оператор break дає можливість контролю вийти з циклу, оператор continue дозволить керувати наступною ітерацією цього циклу.

Top