Po raz pierwszy zobaczyłem to słowo kluczowe i zastanawiałem się, czy ktoś może mi wyjaśnić, co robi.
- Co to jest
continue
słowo kluczowe? - Jak to działa?
- Kiedy jest używany?
Po raz pierwszy zobaczyłem to słowo kluczowe i zastanawiałem się, czy ktoś może mi wyjaśnić, co robi.
continue
słowo kluczowe?Odpowiedzi:
continue
Oświadczenie bez etykiety ponownie wykonać ze stanu najgłębszej while
lub do
pętli, az wypowiedzi aktualizacji najbardziej wewnętrznej for
pętli. Jest często używany do wcześniejszego zakończenia przetwarzania pętli, a tym samym do unikania głęboko zagnieżdżonych if
instrukcji. W poniższym przykładzie continue
zostanie wyświetlony następny wiersz bez przetwarzania następującej instrukcji w pętli.
while (getNext(line)) {
if (line.isEmpty() || line.isComment())
continue;
// More code here
}
Z etykietą continue
ponownie uruchomi się z pętli z odpowiednią etykietą, a nie z wewnętrznej pętli. Można tego użyć do ucieczki głęboko zagnieżdżonych pętli lub po prostu dla przejrzystości.
Czasami continue
jest również używany jako symbol zastępczy, aby uczynić pustą treść pętli bardziej wyraźną.
for (count = 0; foo.moreData(); count++)
continue;
Ta sama instrukcja bez etykiety istnieje również w C i C ++. Odpowiednikiem w Perlu jest next
.
Ten typ przepływu sterowania nie jest zalecany, ale jeśli tak zdecydujesz, możesz także użyć continue
do symulacji ograniczonej formy goto
. W poniższym przykładzie continue
ponownie uruchomi pustą for (;;)
pętlę.
aLoopName: for (;;) {
// ...
while (someCondition)
// ...
if (otherCondition)
continue aLoopName;
continue
jest trochę jak goto
. Czy znasz break
? W przeciwieństwie do nich łatwiej jest myśleć o nich:
break
kończy pętlę (przeskakuje do kodu poniżej).
continue
kończy resztę przetwarzania kodu w pętli dla bieżącej iteracji, ale kontynuuje pętlę.
Jeśli myślisz o ciele pętli jako podprogramie, continue
to jest coś w rodzaju return
. To samo słowo kluczowe istnieje w C i służy temu samemu celowi. Oto wymyślony przykład:
for(int i=0; i < 10; ++i) {
if (i % 2 == 0) {
continue;
}
System.out.println(i);
}
Spowoduje to wydrukowanie tylko liczb nieparzystych.
Ogólnie widzę continue
(i break
) jako ostrzeżenie, że kod może wymagać pewnego refaktoryzacji, szczególnie jeśli while
lubfor
deklaracja pętli nie jest natychmiast widoczna. To samo dotyczyreturn
metody, ale z nieco innego powodu.
Jak już powiedzieli inni, continue
przechodzi do następnej iteracji pętli, natomiastbreak
wychodzi z otaczającej pętli.
Mogą to być przedziały czasowe konserwacji, ponieważ nie ma bezpośredniego połączenia między continue
/ break
a pętlą, którą kontynuuje / przerywa poza kontekstem; dodaj wewnętrzną pętlę lub przenieś „wnętrzności” pętli do osobnej metody i uzyskasz ukryty efekt continue
/break
fail.
IMHO najlepiej użyć ich jako ostateczności, a następnie upewnić się, że ich użycie jest ściśle zgrupowane na początku lub na końcu pętli, aby następny programista mógł zobaczyć „granice” pętli na jednym ekranie .
continue
, break
i return
(inne niż One True Return na końcu twojej metody) wszystkie należą do ogólnej kategorii „ukrytych GOTO”. Umieszczają kontrolę pętli i funkcji w nieoczekiwanych miejscach, co następnie powoduje błędy.
„kontynuuj” w Javie oznacza przejście do końca bieżącej pętli, oznacza: jeśli kompilator zobaczy kontynuację w pętli, przejdzie do następnej iteracji
Przykład: jest to kod do drukowania liczb nieparzystych od 1 do 10
kompilator zignoruje kod wydruku, ilekroć będzie kontynuował przechodzenie do następnej iteracji
for (int i = 0; i < 10; i++) {
if (i%2 == 0) continue;
System.out.println(i+"");
}
Jak już wspomniano continue
, pominie przetwarzanie kodu pod nim i do końca pętli. Następnie zostaniesz przeniesiony do stanu pętli i uruchom następną iterację, jeśli ten warunek nadal się utrzymuje (lub jeśli istnieje flaga, do wskazanego stanu pętli).
Należy podkreślić, że w przypadku do - while
ciebie jesteś przenoszony do stanu na dole po, a continue
nie na początku pętli.
Dlatego wiele osób nie odpowiada poprawnie na to, co wygeneruje poniższy kod.
Random r = new Random();
Set<Integer> aSet= new HashSet<Integer>();
int anInt;
do {
anInt = r.nextInt(10);
if (anInt % 2 == 0)
continue;
System.out.println(anInt);
} while (aSet.add(anInt));
System.out.println(aSet);
* Jeśli twoja odpowiedź aSet
będzie zawierała liczby nieparzyste tylko w 100% ... jesteś w błędzie!
Kontynuuj jest słowem kluczowym w Javie i służy do pominięcia bieżącej iteracji.
Załóżmy, że chcesz wydrukować wszystkie liczby nieparzyste od 1 do 100
public class Main {
public static void main(String args[]) {
//Program to print all odd numbers from 1 to 100
for(int i=1 ; i<=100 ; i++) {
if(i % 2 == 0) {
continue;
}
System.out.println(i);
}
}
}
Instrukcja Kontynuuj w powyższym programie po prostu pomija iterację, gdy i jest parzyste, i wypisuje wartość i, gdy jest nieparzysta.
Instrukcja Kontynuuj po prostu wyciąga Cię z pętli bez wykonywania pozostałych instrukcji w pętli i uruchamia następną iterację.
Rozważ warunek If Else. Instrukcja continu wykonuje to, co jest w warunku i wychodzi z tego warunku, tzn. Przeskakuje do następnej iteracji lub warunku. Ale Przerwa opuszcza pętlę. Rozważ następujący program. „
public class ContinueBreak {
public static void main(String[] args) {
String[] table={"aa","bb","cc","dd"};
for(String ss:table){
if("bb".equals(ss)){
continue;
}
System.out.println(ss);
if("cc".equals(ss)){
break;
}
}
System.out.println("Out of the loop.");
}
}
Wyświetli się: aa cc Out of the loop.
Jeśli użyjesz break zamiast kontynuowania (After if.), Po prostu wypisze aa i poza pętlą .
Jeśli warunek „bb” jest równy ss: dla Kontynuuj: przechodzi do następnej iteracji, tj. „Cc” .equals (ss). For Break: wychodzi z pętli i drukuje „Out of the loop”.
break
Jestem trochę spóźniony na imprezę, ale ...
Warto wspomnieć, że continue
jest to przydatne w przypadku pustych pętli, w których cała praca jest wykonywana w wyrażeniu warunkowym kontrolującym pętlę. Na przykład:
while ((buffer[i++] = readChar()) >= 0)
continue;
W takim przypadku cała praca z odczytaniem znaku i dołączeniem go buffer
odbywa się w wyrażeniu kontrolującym while
pętlę. continue
Oświadczenie służy jako wskaźnik wizualny, że pętla nie potrzebuje organizm.
Jest to trochę bardziej oczywiste niż odpowiednik:
while (...)
{ }
i zdecydowanie lepszy (i bezpieczniejszy) styl kodowania niż używanie pustych instrukcji, takich jak:
while (...)
;
while
stało się treścią while
klauzuli, i które nie byłoby wizualnie oczywiste. Wyraźne continue
jest oczywiste i przekazuje zamiar, którego nie zawiera puste stwierdzenie.
Zasadniczo w Javie kontynuacja jest instrukcją. Tak więc instrukcja Kontynuacja jest zwykle używana z pętlami, aby pominąć bieżącą iterację.
Aby dowiedzieć się, jak i kiedy jest używany w Javie, zapoznaj się z linkiem poniżej. Ma wyjaśnienie z przykładem.
https://www.flowerbrackets.com/continue-java-example/
Mam nadzieję, że to pomoże !!
continue
musi znajdować się w pętli, w przeciwnym razie pokazuje błąd poniżej:
Kontynuuj poza pętlą
Instrukcja kontynuacji jest używana w strukturze kontroli pętli, gdy trzeba natychmiast przejść do następnej iteracji pętli.
Można go używać z pętlą for lub while. Instrukcja kontynuacji Java jest używana do kontynuowania pętli. Kontynuuje bieżący przepływ programu i pomija pozostały kod w określonych warunkach.
W przypadku pętli wewnętrznej kontynuuje tylko pętlę wewnętrzną.
Możemy używać instrukcji kontynuacji Java we wszystkich typach pętli, takich jak pętla for, loop i do-while.
na przykład
class Example{
public static void main(String args[]){
System.out.println("Start");
for(int i=0; i<10; i++){
if(i==5){continue;}
System.out.println("i : "+i);
}
System.out.println("End.");
}
}
wynik:
Start
i : 0
i : 1
i : 2
i : 3
i : 4
i : 6
i : 7
i : 8
i : 9
End.
[numer 5 pomija]