"Cześć Amigo!
"Cześć Ellie."
„Przestudiowałeś już pętle i to jest fajne”.
„Zgadzam się! Teraz zupełnie nie wiem, jak bez nich żyć”.
„Czasami możesz się bez nich obejść… Ale częściej będziesz ich potrzebować. Dzisiaj porozmawiamy o sytuacji, w której musisz wyjść z pętli przed czasem”.
„Czy masz na myśli, kiedy warunek kontynuacji pętli jest spełniony, ale nadal musisz wyjść z pętli?”
„Dokładnie! Czasami brzmisz, jakbyś już był programistą. W każdym razie, aby wyrwać się z pętli przed terminem, możesz użyć instrukcji break . Spójrz na następujący przykład:
Kod | Wyjaśnienie |
---|---|
|
Program będzie odczytywał linię z klawiatury, dopóki nie wpiszesz "exit" . |
„Rozumiem. Program odczytuje wiersze z konsoli. Jeśli wpiszesz "exit"
, to isExit
zmienna zmieni się na true
, warunek pętli będzie równy , a pętla się zakończy”.!isExit
false
„Zgadza się. Tak więc Java ma specjalną break
instrukcję, która pozwala uprościć taką logikę. Jeśli break
instrukcja jest wykonywana w pętli, pętla natychmiast się kończy. Program rozpocznie wykonywanie instrukcji następującej po pętli. Instrukcja jest bardzo krótka :
break;
„Oto, w jaki sposób możesz użyć tego break
stwierdzenia, aby przepisać przykład, który właśnie omówiliśmy:
Kod | Wyjaśnienie |
---|---|
|
Program będzie odczytywał linię z klawiatury, dopóki nie wpiszesz "exit" . |
- Może to zapamiętam. Czuję, że się przyda.
„Ale break
nie jest to jedyna instrukcja Java, która pozwala kontrolować zachowanie pętli. Java również zawiera instrukcję continue
. Jeśli wykonasz continue
instrukcję wewnątrz pętli, bieżąca iteracja pętli zakończy się przed terminem”.
„Co rozumiesz przez iterację?”
„Iteracja pętli to jedno wykonanie ciała pętli. continue
Instrukcja przerywa bieżącą iterację pętli, ale w przeciwieństwie do break
instrukcji nie kończy samej pętli. Instrukcja jest również krótka:
continue;
„Więc continue
instrukcja może być użyta w pętli, jeśli chcemy„ pominąć ”wykonanie niektórych iteracji pętli?”
„Dokładnie. Czy rozumiesz różnicę między break
i continue
? Jeśli musisz znaleźć siódemkę wśród 20 niepowtarzalnych cyfr, jakiego rodzaju pętli i instrukcji przerwania pętli byś użył?
„Hmm… przejrzałbym wszystkie liczby, a jeśli znajdę 7, wykonałbym break
”.
„Co zrobić, jeśli chcesz wyświetlić liczby od 1
do 20
z wyjątkiem liczb podzielnych przez 7
?”
„Cóż, tutaj prawdopodobnie potrzebuję continue
, ponieważ nie chcę wychodzić z pętli. Ale nadal nie do końca rozumiem”.
„Pozwól, że pokażę ci, jak rozwiązać ten problem. Tak może wyglądać ten kod”.
Kod | Wyjaśnienie |
---|---|
|
Program wyświetla liczby od 1 do 20 . Jeśli liczba jest podzielna przez 7 (reszta z dzielenia przez 7 to 0 ), to pomijamy wyświetlanie liczby. |
- Dlaczego patrzysz na mnie tak podejrzliwie, Ellie? Czy jest tu jakiś haczyk?
„Nie da się oszukać, Amigo! Rzeczywiście, ten kod nie zadziała poprawnie . Wyświetli się pierwsze 6 cyfr, a potem i
już na zawsze utknie na numerze 7
. W końcu continue
instrukcja pomija dwie inne instrukcje: System.out.println(i)
i i++
. Jako w rezultacie, gdy osiągniemy wartość 7
, zmienna i
przestanie się zmieniać i znajdziemy się w nieskończonej pętli. Napisałem kod w ten sposób celowo, aby zilustrować bardzo częsty błąd.
„Jak to naprawić?”
„Są tu dwie opcje:”
Opcja 1: zmień i
przed wykonaniem continue
, ale poi % 7
Opcja 2: zawsze zwiększaj i
na początku pętli. Ale wtedy i
wartość początkowa musi być 0
.
opcja 1 | Opcja 2 |
---|---|
|
|
"Wspaniale! Postaram się nie popełnić tego błędu."
"Będę pamiętał o twojej obietnicy!"
GO TO FULL VERSION