Zalecane, 2019

Wybór Redakcji

Różnica między przerwą a kontynuacją

Zarówno "break", jak i "continue" są instrukcjami "jump", które przekazują kontrolę nad programem do innej części programu. C ++ obsługuje cztery instrukcje skoku, mianowicie "return", "goto", "break" i "continue". Java obsługuje trzy instrukcje skoku "break" "continue" i "return". Główną różnicą pomiędzy break i continue jest to, że break jest używany do natychmiastowego zakończenia pętli, podczas gdy kontynuuj bieżącą iterację i kontynuuj kontrolę do następnej iteracji pętli. Przeanalizujmy różnicę między break a continue w kontekście C ++ i Java.

Wykres porównania:

Podstawa do porównaniazłamaćdalej
Zadanie
Przerywa wykonywanie pozostałej iteracji pętli.Zamyka tylko bieżącą iterację pętli.
Kontrola po przerwie / kontynuuj"break" wznawia kontrolę nad programem do końca pętli zamykając ten "break"."kontynuuj" wznawia kontrolę nad programem do kolejnej iteracji pętli zamykającej "kontynuuj".
PrzyczynyPowoduje wcześniejsze zakończenie pętli.Powoduje wczesne wykonanie kolejnej iteracji.
Kontynuacja"break" zatrzymuje kontynuację pętli."kontynuuj" nie przerywa kontynuacji pętli, zatrzymuje jedynie bieżącą iterację.
Inne zastosowania"break" może być użyty z "switch", "label"."Kontynuacja" nie może być wykonana za pomocą "przełącznika" i "etykiet".

Definicja Break

W C ++ break ma tylko dwa zastosowania, tj. Najpierw służy do "zakończenia wykonywania sprawy w instrukcji switch". Po drugie, aby "zakończyć pętlę i wznowić kontrolę do następnej instrukcji następującej po pętli". Ale w Java break najpierw ma trzy zastosowania, kończy przypadek w przełączniku, drugi kończy przerwanie zamykające pętlę i trzeci, jak wspomniano wcześniej, że Java nie dostarcza instrukcji "goto", ale rozszerzone łamanie formularzy może być używane w miejsce "goto".

Zobaczmy, każde użycie "przerwy" w szczegółach.

Pierwsze użycie do zakończenia wykonywania sprawy w przełączniku. Przełącznik włamania wpływa tylko na ten przełącznik, który go otacza, nie ma wpływu na pętlę zamykającą przełącznik.

 // W kontekście C ++. // użycie break-switch w kontekście C ++. switch (wyrażenie całkowite) {case 1: ..... ..... break; przypadek 2: ..... ..... przerwa; przypadek 3: ..... ..... przerwa; domyślna: ....... ....... } 

Drugie użycie, aby wymusić zakończenie pętli i wznowić ją w następnej instrukcji pętli. Gdy tylko wewnątrz pętli napotkana zostanie instrukcja break, pętla ta zostaje natychmiast zakończona bez wykonywania pozostałego kodu w ciele tej pętli, a sterowanie programu osiągnie kolejną instrukcję wypisaną po tej pętli.

 // używając break, aby wyjść z pętli w kontekście klasy Java main_class {public static void main (string args []) {for (int i = 0; i <100; i ++) {system.out.println ("i:" + i); jeśli (i == 10) przerwa; // ponieważ warunek wewnątrz atrybutu "if" satistfies pochodzi z pętli "for". } system.out.println ("Loop tu pęka"); }} 

break tylko niech program wyjdzie z pętli, która go otacza. Jeśli przerwa jest używana z zagnieżdżoną pętlą, wyłamuje tylko najbardziej wewnętrzną pętlę i nie wpływa na zewnętrzną pętlę.

Trzecie użycie, użycie przerwy jako formy goto. Java używa break jako formy goto bez problemu. Ponieważ goto zapewnia nieustrukturyzowane rozgałęzienia, które jest trudne do zrozumienia, a także blokuje optymalizację kompilatora, Java używa rozszerzonej formy przerwy, która jest podobna do goto i pomaga wyjść z więcej niż jednego bloku na raz i wznowić kontrolę nad programem koniec oznaczonego bloku, o którym mowa w instrukcji break.

Deklaracja:

 etykieta przerwania; 

Tutaj "etykieta" to nazwa określonego bloku kodu lub identyfikatora w Javie, a ten oznaczony blok musi zawierać instrukcję break. Instrukcja z etykietą break używana jest do wyjścia z zestawu zagnieżdżonej pętli. Gdy napotkana jest instrukcja z etykietą break, sterowanie kończy znakowany blok, który jest wymieniony wraz z instrukcją break.
Zobaczmy to praktycznie.

 // użycie break jako formy goto w kontekście klasy Java main_class {public static void main (string args []) {boolean t = true; first {second {third {system.out.println ("ten trzeci blok"); jeśli (t) złamie się pierwszy; } system.out.println ("ten drugi blok"); } system.out.println ("ten pierwszy blok"); } system.out.println ("ten główny blok"); }} // output: to jest trzeci blok, to jest główny blok 

W tym kodzie, gdy formant osiągnie trzeci blok, jego instrukcja drukowania zostanie wykonana, a następnie wznowienie kontroli do instrukcji "if", i gdy jest spełnione, wykonywana jest instrukcja break z etykietą. Etykieta dołączona z przerwą jest pierwsza, więc kontrola wznawia się do instrukcji napisanej po końcu bloku, tj. W głównym bloku, który jest instrukcją drukowania i która zostaje wykonana.

Definicja Kontynuuj

Gdy break przerwie pozostałą iterację pętli i pozwoli kontroli wyjść z pętli, tutaj kontynuacja działa w pewnym sensie jak przerwa. Instrukcja continue zatrzymuje wykonywanie pozostałego kodu w pętli dla tej bieżącej iteracji i wznawia kontrolę do następnej iteracji tej pętli. Instrukcja continue pomija kod dla bieżącej iteracji i przekazuje sterowanie do następnej iteracji pętli.

Rozumiem to na przykładzie.

 // używanie kontynuacji w kontekście do C ++. // wypisuje liczbę parzystą do 100. class main_class {public static void main (string args []) {for (int i = 0; i <100; i ++) {if (i% 2! = 0) continue; // kontynuuj wznowienie kontroli do następnej iteracji w pętli for system.out.println ("i:" + i); }}} 

W powyższym programie, jeśli instrukcja "if" jest spełniona, wówczas wykonywana jest instrukcja continue, która nie pozwala na wykonanie poniższej instrukcji print i wznowienie sterowania do następnej iteracji pętli for. Jeśli i = 1, warunek "if" jest spełniony i kontynuowany jest wykonywany, bez wykonywania instrukcji print dla nieparzystej wartości "i", a sterowanie wznawia się do następnej iteracji pętli "dla i = 2". Jeśli i = 2, wówczas wyrażenie "jeśli" nie jest spełnione; continue nie działa, a instrukcja print wypisuje wartość "i", która jest parzysta.

Kluczowe różnice między przerwą i kontynuacją

  1. Zasadniczo, słowo "break" kończy działanie pozostałych pozostałych iteracji pętli. Z drugiej strony, ciągłe słowo kluczowe kończy tylko bieżącą iterację pętli.
  2. Po wykonaniu słowa kluczowego break kontrola wyjścia programu wychodzi z pętli i wznawia się do następnej instrukcji po pętli. W przypadku kontynuacji słowa kluczowego kontrola programu zostanie wznowiona do następnej iteracji pętli.
  3. Jak powyżej krok kończy się stwierdzeniem, że po wykonaniu kontroli przerwania programu wyjście z pętli jest zrozumiałe, że przerwanie powoduje wcześniejsze zakończenie dowolnej pętli. Z drugiej strony, kontynuuj tylko zakończenie bieżącej iteracji i wznów do następnej iteracji pętli, następnie możemy powiedzieć, że continue powoduje wczesne wykonanie kolejnej iteracji pętli.
  4. Słowo kluczowe break przerywa całą pozostałą iterację po wykonaniu, więc możemy powiedzieć, że zatrzymuje ona kontynuację pętli, podczas gdy słowo continue nadal kontynuuje wykonywanie pętli.
  5. Słowo kluczowe break może być używane wraz z instrukcjami "switch", jak również "label", podczas gdy słowo kluczowe continue nie może być używane z "switch" i "label".

Wniosek:

Instrukcja break i continue to instrukcja skoku, która przekazuje sterowanie do innej części programu. Gdzie instrukcja break pozwala kontrolce wyjść z pętli, instrukcja continue przekazuje sterowanie do następnej iteracji tej pętli.

Top