Różnica między pętlami for i while

Autor: Laura McKinney
Data Utworzenia: 2 Kwiecień 2021
Data Aktualizacji: 9 Móc 2024
Anonim
Różnica między pętlami for i while - Technologia
Różnica między pętlami for i while - Technologia

Zawartość


W C ++ i Javie instrukcje iteracyjne dla pętli while i loop oraz do-while pozwalają na wielokrotne wykonywanie zestawu instrukcji, dopóki warunek nie jest spełniony i kończy się, gdy warunek stanie się fałszywy. Warunki w instrukcjach iteracji mogą być predefiniowane jak w pętli for lub otwarte, jak w pętli while.

Istnieje kilka wariantów pętli „for” w C ++, które mają na celu zwiększenie jego zastosowania, mocy i elastyczności. Na przykład pętla for pozwala nam używać więcej niż jednej zmiennej w pętli, aby ją kontrolować, a także użycie funkcji zbieżności z pętlą „for”. I odwrotnie, z pętlą while nie możemy używać wielu odmian, które muszą być używane ze standardową składnią.

Istnieją pewne duże różnice między pętlami for i while, które wyjaśniono dalej za pomocą tabeli porównawczej.

  1. Wykres porównania
  2. Definicja
  3. Kluczowe różnice
  4. Wniosek

Wykres porównania

Podstawa do porównaniadla podczas
Deklaracjafor (inicjalizacja; warunek; iteracja) {
// treść pętli for
}
while (warunek) {
sprawozdania; // treść pętli
}
FormatInicjalizacja, sprawdzanie warunków, instrukcja iteracji są zapisywane na górze pętli.Na początku pętli wykonywana jest tylko inicjalizacja i sprawdzanie warunków.
Posługiwać sięPętla for jest używana tylko wtedy, gdy znamy już liczbę iteracji.Pętla while używana jest tylko wtedy, gdy liczba iteracji nie jest dokładnie znana.
StanJeśli warunek nie zostanie wprowadzony dla pętli, wówczas pętla iteruje nieskończone czasy.Jeśli warunek nie zostanie wprowadzony w pętli while, spowoduje to błąd kompilacji.
InicjalizacjaWykonana w pętli for inicjalizacja nigdy się nie powtarza.W pętli while, jeśli inicjalizacja jest wykonywana podczas sprawdzania warunków, inicjalizacja jest wykonywana za każdym razem, gdy iteruje pętla.
Instrukcja iteracjiInstrukcja iteracji w pętli jest zapisywana u góry, dlatego jest wykonywana tylko po wykonaniu wszystkich instrukcji w pętli.W pętli while instrukcję iteracji można zapisać w dowolnym miejscu w pętli.


Definicja pętli for

W Javie istnieją dwie formy dla pętle Pierwsza forma to forma „tradycyjna”, a druga to forma „dla każdego”.

Składnia

Ogólna forma tradycyjnej instrukcji pętli.

for (inicjalizacja; warunek; iteracja) {// body for for loop}

  • Inicjalizacja - Inicjalizacja zmiennej kontrolującej pętlę dla pętli jest wykonywana tylko raz, podczas pierwszej iteracji pętli. Tutaj inicjalizowana jest zmienna sterująca pętli, czasami jeśli zmienna pętli nie jest ponownie używana w dowolnym miejscu w programie i jest używana tylko jako zmienna sterująca pętli, jest ona zarówno deklarowana, jak i inicjalizowana w pętli „for”.
  • Stan - Warunek pętli „for” jest wykonywany za każdym razem, gdy pętla jest iterowana.
  • Przyrost i iteracja- Instrukcja iteracji jest wyrażeniem zwiększającym lub zmniejszającym zmienną sterującą pętli.

Ilekroć wykonywana jest pętla, najpierw wykonywany jest jej stan inicjalizacji; następnie sprawdzany jest warunek. Jeśli warunek jest spełniony, wykonywana jest treść pętli, a następnie wykonywana jest instrukcja iteracji. Następnie sprawdzany jest warunek, aby sprawdzić, czy pętla będzie się powtarzać, czy zakończy.


W Javie instrukcja inicjalizacji i instrukcja iteracji mogą zawierać więcej niż jedną instrukcję. Każda instrukcja jest oddzielona przecinkiem, w Javie przecinek jest separatorem, podczas gdy w C ++ „przecinek” jest operatorem, którego można użyć w dowolnym poprawnym wyrażeniu.

dla każdej pętli i jej składnia

Forma „dla każdego” jest ulepszoną pętlą for. Ogólna forma każdej pętli jest następująca.

dla (wpisz iter_variable: collection) instrukcja-blok

Tutaj „typ” określa typ zmiennej iteracyjnej, po której następuje zmienna iteracyjna. Zmienna iteracyjna otrzyma element ze zmiennej kolekcji. Typ musi być taki sam jak typ elementów przechowywanych w zmiennej kolekcji. Forma for dla każdej pętli for automatyzuje iterację pętli od początku do końca dostępu do wartości w kolejności sekwencyjnej.

Przykład

Istnieją różne rodzaje kolekcji używanych w pętli for. Omówmy to z tablicą jako kolekcją.

public class Main {public static void main (String args) {int array = {10, 20, 30, 40, 50, 60}; int add = 0; for (int c: array) {System.out.ln („wartość w c” + c); add = add + c; } System.out.ln („additon elementów tablicy to” + add); }} // wartość wyjściowa w c 10 wartość w c 20 wartość w c 30 wartość w c 40 wartość w c 50 wartość w c 60 dodanie elementów tablicy wynosi 210

„C” jest tutaj zmienną iteracyjną; otrzymuje wartości z tablicy, pojedynczo, od najniższego indeksu do najwyższego indeksu w tablicy. Tutaj pętla iteruje do momentu sprawdzenia wszystkich elementów tablicy. Możliwe jest zakończenie pętli pomiędzy za pomocą „break”. Jednak zmiana zmiennej iteracyjnej nie wpływa na tablicę, ponieważ jest to tylko zmienna tylko do odczytu.

Definicja pętli while

The podczas Pętla jest najbardziej podstawową pętlą dostępną w C ++ i Javie. Działanie pętli while jest podobne zarówno w C ++, jak i Javie.

Składnia

Deklaracja pętli while jest następująca

while (warunek) {instrukcje; // body of loop}

Pętla while początkowo sprawdza warunek, a następnie wykonuje instrukcje, aż warunek w pętli while okaże się prawdziwy. Warunkiem w pętli while może być dowolne wyrażenie boolowskie. Gdy wyrażenie zwraca dowolną niezerową wartość, wówczas warunek jest prawdziwy, a jeśli wyrażenie zwraca wartość zerową, warunek staje się fałszywy.

Jeśli warunek stanie się prawdziwy, wówczas pętla iteruje się, a jeśli warunek stanie się fałszywy, wówczas kontrola przechodzi do następnego wiersza kodu, po którym bezpośrednio następuje pętla. Instrukcje lub pętla treści mogą być pustymi instrukcjami, pojedynczymi instrukcjami lub blokiem instrukcji.

Przykład

Porozmawiajmy o działaniu pętli while. W poniższym przykładzie kod będzie wynosił od 1 do 10.

// przykład jest w Javie. public class Main {public static void main (String args) {int n = 0; podczas gdy (n <10) {n ++; System.out.ln („n =” + n); }}} // wyjście n = 1 n = 2 n = 3 n = 4 n = 5 n = 6 n = 7 n = 8 n = 9 n = 10

Tutaj wartość początkowa „n” wynosi 0, co sprawia, że ​​warunek w pętli while jest prawdziwy. Następnie formant wchodzi do treści pętli while, a wartość „n” jest zwiększana zgodnie z pierwszą instrukcją w treści pętli while. Wartość „n” jest edytowana, następnie formant wraca do warunku w pętli while, teraz wartość „n” wynosi 1, co ponownie spełnia warunek, a treść pętli jest wykonywana ponownie. Trwa to do momentu spełnienia warunku, gdy tylko warunek stanie się fałszywy, pętla zostanie zakończona.

Podobnie jak pętla „for”, pętla „while” może również inicjalizować zmienną kontrolną na górze pętli, tj. Podczas sprawdzania warunków.

// na przykład while ((ch = getchar ())! = A) {System.out.ln („Alfabet wejściowy” + ch); }

Tutaj inicjowana jest zmienna kontrolna „ch”, a stan pętli jest weryfikowany u góry pętli.

Uwaga:

Może to być pętla for lub while, jeśli w treści pętli znajduje się tylko jedna instrukcja, nawiasy klamrowe nie są wymagane w tym stanie.

  1. W dla pętla, inicjalizacja, sprawdzanie warunków oraz zwiększanie lub zmniejszanie zmiennej iteracyjnej odbywa się jawnie tylko w składni pętli. W przeciwieństwie do, w podczas pętlę możemy jedynie zainicjować i sprawdzić warunek w składni pętli.
  2. Kiedy zdajemy sobie sprawę z liczby iteracji, które muszą wystąpić w wykonaniu pętli, używamy dla pętla. Z drugiej strony, jeśli nie jesteśmy świadomi liczby iteracji, które muszą wystąpić w pętli, używamy podczas pętla.
  3. Jeśli nie umieścisz instrukcji warunku dla pętli, doprowadzi to do nieskończonej iteracji pętli. Natomiast jeśli nie umieścisz instrukcji warunku w podczas pętla doprowadzi do błędu kompilacji.
  4. Instrukcja inicjalizacji w składni dla pętla jest wykonywana tylko raz na początku pętli. I odwrotnie, jeśli podczas Pętla przenosi instrukcję inicjalizacji w swojej składni, a następnie instrukcja inicjalizacji w pętli while będzie wykonywana za każdym razem, gdy pętla będzie iterowana.
  5. Instrukcja iteracji w dla Pętla wykona się po treści dla pętli. Przeciwnie, instrukcja iteracyjna może być zapisana w dowolnym miejscu w treści podczas pętli, więc mogą istnieć pewne instrukcje, które wykonują się po wykonaniu instrukcji iteracji w treści pętli while.

Wniosek:

Zarówno pętla for, jak i pętla while są instrukcjami iteracyjnymi, ale oba mają swoje odrębne cechy. Pętla for ma całą swoją deklarację (inicjalizację, warunek, iterację) na górze treści pętli. I odwrotnie, w pętli while tylko inicjalizacja i warunek znajdują się na górze treści pętli, a iteracja może być zapisana w dowolnym miejscu w treści pętli.