logo

Pętla For vs. While w C

Zrozumienie różnicy między pętlą for i pętlą while

Instrukcje iteracyjne w języku C++, takie jak pętla for, while i do-while, umożliwiają wielokrotne wykonanie zestawu instrukcji, aż warunek stanie się prawdziwy, a następnie zakończenie, gdy warunek będzie fałszywy. Instrukcje iteracji mogą mieć predefiniowane warunki, na przykład w pętli for, lub warunki otwarte, na przykład w pętli while.

W języku C++ sugeruje się różne odmiany pętli „for” w celu zwiększenia stosowalności, mocy i elastyczności języka. Na przykład pętla for pozwala nam sterować pętlą za pomocą wielu zmiennych znajdujących się w niej, a także za pomocą funkcji zbieżnej z pętlą „for”. W przeciwieństwie do tego, nie możemy używać wielu odmian pętli while; należy go używać ze standardową składnią.

numpy linspace

Istnieje kilka znaczących różnic pomiędzy pętlami for i while, które można dokładniej wyjaśnić za pomocą tabeli porównawczej.

Pętla For vs. While w C

For Loop jest zdefiniowany jako

W Javie istnieją dwa typy pętli for. Pierwsza to forma „tradycyjna”, druga to forma „dla każdego”.

Najbardziej ogólna forma instrukcji pętli for.

 for (initialization; condition; iteration) { //body of for loop } 
    Inicjalizacja:Zmienna sterująca pętlą for jest inicjowana tylko raz, podczas pierwszej iteracji pętli. Tutaj inicjowana jest zmienna sterująca pętlą; jeśli zmienna pętli nie jest już nigdy więcej używana w programie i jest używana jedynie jako zmienna sterująca pętli, jest ona zarówno deklarowana, jak i inicjowana w pętli „for”.Stan : schorzenie:Warunek pętli „for” jest wykonywany przy każdej iteracji pętli.
  • Instrukcja iteracji jest wyrażeniem, które zwiększa lub zmniejsza zmienną kontrolującą pętlę.

Kiedy pętla jest wykonywana, najpierw wykonywany jest warunek inicjalizacji, a następnie sprawdzanie warunku. Jeśli warunek jest spełniony, wykonywane jest ciało pętli, po którym następuje instrukcja iteracji. Następnie warunek jest sprawdzany ponownie, aby określić, czy pętla będzie kontynuować iterację, czy też się zakończy.

W Javie instrukcje inicjujące i iteracyjne mogą zawierać wiele instrukcji. Każde stwierdzenie oddziela przecinek; w Javie przecinek jest separatorem; w C++ przecinek jest operatorem, którego można użyć w dowolnym prawidłowym wyrażeniu.

Składnia pętli for-each

Formularz „for-each” jest bardziej zaawansowaną wersją pętli for. Pętla for-each ma następującą ogólną postać.

 for(type iter_variable: collection) statement-block 

Parametr „type” określa typ zmiennej iteracji, po której następuje zmienna iteracji. Element ze zmiennej kolekcji zostanie przekazany do zmiennej iteracji. Typ musi odpowiadać typowi elementów w zmiennej kolekcji. Forma for-each pętli for automatyzuje iterację pętli od początku do końca, uzyskując dostęp do wartości w kolejności sekwencyjnej.

orzeszki ziemne vs orzeszki ziemne

Przykład

Istnieje wiele typów kolekcji, których można używać z pętlą for. Porozmawiajmy o tym, używając tablicy jako kolekcji.

 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.println( 'value in c ' + c); add = add+c; } System.out.println('additon of array elements is ' +add); } } 

Wyjście:

 value in c 10 value in c 20 value in c 30 value in c 40 value in c 50 value in c 60 additon of array elements is 210 

„c” jest w tym przypadku zmienną iteracji; otrzymuje wartości z tablicy [], jedna po drugiej, od najniższego do najwyższego indeksu w tablicy. Pętla wykonuje iterację do momentu sprawdzenia wszystkich elementów tablicy. Pętlę można przerwać w środku za pomocą polecenia „break”. Z drugiej strony zmiana zmiennej iteracyjnej nie ma wpływu na tablicę, ponieważ jest to zmienna tylko do odczytu.

Podczas gdy pętla jest zdefiniowana jako

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

Składnia

Poniżej znajduje się deklaracja pętli while:

 while ( condition) { statements; //body of loop } 

Pętla while najpierw sprawdza warunek, a następnie wykonuje instrukcje, aż warunek w pętli while będzie prawdziwy. W pętli while warunkiem może być dowolne wyrażenie logiczne. Gdy wyrażenie zwraca wartość różną od zera, warunek jest prawdziwy; gdy zwróci wartość zerową, warunek jest fałszywy.

losowy brak generatora w Javie

Jeśli warunek jest prawdziwy, pętla wykonuje iterację; jeśli warunek jest fałszywy, sterowanie jest przekazywane do linii kodu bezpośrednio następującej po pętli. Pętla lub instrukcje mogą być pustą instrukcją, pojedynczą instrukcją lub blokiem instrukcji.

Przykład

Przyjrzyjmy się, jak działa pętla while. Kod w poniższym przykładzie wyświetli cyfry od 1 do 10.

 public class Main { public static void main (String args[]) { int n=0; while(n<10) { n++; system.out.println('n=" +n); } } } &lt;/pre&gt; &lt;p&gt; &lt;strong&gt;Output:&lt;/strong&gt; &lt;/p&gt; &lt;pre&gt; n=1 n=2 n=3 n=4 n=5 n=6 n=7 n=8 n=9 n=10 &lt;/pre&gt; &lt;p&gt;The initial value of " n' in this case is 0, which makes the condition while loop true. control then enters loop's body, where value of 'n' incremented accordance with first statement.< p> <p>The value of &apos;n&apos; is printed, then control returns to the condition in a while loop, where the value of &apos;n&apos; is now 1, satisfying the condition once more, and the body of the loop is executed once more. This continues until the condition becomes false, at which point the loop is terminated.</p> <p>The &apos;while&apos; loop, like the &apos;for&apos; loop, can initialise the control variable at the beginning of the loop, i.e. during condition checking.</p> <pre> //for example while((ch = getchar( ) ) != &apos;A&apos;) { System.out.println(&apos; The input alphabet &apos; +ch); } </pre> <p>At the top of the loop, the control variable &apos;ch&apos; is initialised, and the loop&apos;s condition is verified.</p> <h4>Note: If there is only one statement in the body of the loop, whether it is a for loop or a while loop, the curly braces are not required.</h4> <h3>In C, what is the difference between a for loop and a while?</h3> <table class="table"> <tr> <th>Parameters</th> <th>For Loop</th> <th>While Loop</th> </tr> <tr> <td> <strong>Declaration</strong> </td> <td>for(initialization ; condition ; iteration ) { <br> //body of &apos;for&apos; loop <br> }</td> <td>initialization <br>while ( condition ) { <br>statements; <br>//body of loop <br>}</td> </tr> <tr> <td> <strong>Format.</strong> </td> <td>At the top of the loop, initialization, condition checking, and iteration statements are written.</td> <td>At the top of the loop, only initialization and condition checking are performed.</td> </tr> <tr> <td> <strong>Use.</strong> </td> <td>The &apos;for&apos; loop was only used when the number of iterations was already known.</td> <td>When the number of iterations is unknown, the &apos;while&apos; loop is used.</td> </tr> <tr> <td> <strong>Condition.</strong> </td> <td>If the condition is not included in the &apos;for&apos; loop, the loop iterates indefinitely.</td> <td>If the condition is not included in the &apos;while&apos; loop, a compilation error occurs.</td> </tr> <tr> <td> <strong>Initialization</strong> </td> <td>The initialization is never repeated in a &apos;for&apos; loop.</td> <td>If initialization is performed during condition checking in a while loop, initialization is performed each time the loop iterates.</td> </tr> <tr> <td> <strong>Iteration assertion</strong> </td> <td>Because the iteration statement in the &apos;for&apos; loop is written at the top, it executes only after all statements in the loop have been executed.</td> <td>The iteration statement in a &apos;while&apos; loop can be written anywhere in the loop.</td> </tr> </table> <h2>The Key Differences Between for and while loop</h2> <ul> <li>Initialization, condition checking, and increment or decrement of iteration variables are all done explicitly in the loop syntax only. In contrast, in the while loop, we can only initialise and check the condition in the loop syntax.</li> <li>When we know the number of iterations that must occur in a loop execution, we use the for loop. On the other hand, if we do not know how many iterations must occur in a loop, we use a while loop.</li> <li>If you do not include a condition statement in the for loop, the loop will loop indefinitely. In contrast, failing to include a condition statement in the while loop will result in a compilation error.</li> <li>The initialization statement in the for loop syntax is only executed once at the beginning of the loop. If the while loop&apos;s syntax includes an initialization statement, the initialization statement will be executed each time the loop iterates.</li> <li>The iteration statement in the for loop will run after the body of the for loop. On the contrary, because the iteration statement can be written anywhere in the body of the while loop, there may be some statements that execute after the iteration statement in the body of the while loop is executed.</li> </ul> <h2>Conclusion</h2> <p>Loops are thus a collection of commands that must be used in a specific order. If the loop structure is incorrect, the programming will display the syntax error. Loops run to obtain a result or to satisfy a condition or set of conditions. It is the foundation of all programming languages.</p> <p>During execution, the loop structure asks a question and executes until the answer is satisfactory. The same question is asked again and again until the new statement is applied. The looping process continues indefinitely until the programme reaches a breakpoint. In the event that the breaking point is not reached, the programme will crash.</p> <p>The for and while loops are both conditional statements. A for loop is a single-line command that will be executed repeatedly. While loops can be single-lined or contain multiple commands for a single condition.</p> <p>Both the for loop and the while loop are important in computer languages for obtaining results. The condition is met if the command syntax is correct.</p> <p>Both the for loop and the while loop are iteration statements, but they have distinct characteristics. The for loop declares everything (initialization, condition, iteration) at the top of the loop body. In contrast, only initialization and condition are at the top of the body of the loop in a while loop, and iteration can be written anywhere in the body of the loop.</p> <hr></10)>

Na szczycie pętli inicjowana jest zmienna sterująca „ch” i sprawdzany jest stan pętli.

Uwaga: Jeśli w treści pętli znajduje się tylko jedna instrukcja, niezależnie od tego, czy jest to pętla for, czy pętla while, nawiasy klamrowe nie są wymagane.

Jaka jest różnica w C w pętli for i while?

Parametry Dla pętli Podczas gdy Pętla
Deklaracja for(inicjalizacja; warunek; iteracja) {
//treść pętli „for”.
}
inicjalizacja
podczas gdy (warunek) {
sprawozdania;
//treść pętli
}
Format. Na górze pętli zapisywane są instrukcje inicjalizacji, sprawdzania warunków i iteracji. Na górze pętli wykonywana jest tylko inicjalizacja i sprawdzanie warunków.
Używać. Pętli „for” używano tylko wtedy, gdy znana była już liczba iteracji. Gdy liczba iteracji nie jest znana, używana jest pętla „while”.
Stan : schorzenie. Jeśli warunek nie jest zawarty w pętli „for”, pętla wykonuje iterację w nieskończoność. Jeśli warunek nie zostanie uwzględniony w pętli „while”, wystąpi błąd kompilacji.
Inicjalizacja Inicjalizacja nigdy nie jest powtarzana w pętli „for”. Jeśli inicjalizacja jest wykonywana podczas sprawdzania warunków w pętli while, inicjalizacja jest wykonywana przy każdej iteracji pętli.
Twierdzenie iteracyjne Ponieważ instrukcja iteracji w pętli „for” jest zapisana na górze, jest ona wykonywana dopiero po wykonaniu wszystkich instrukcji w pętli. Instrukcję iteracji w pętli „while” można zapisać w dowolnym miejscu pętli.

Kluczowe różnice między pętlą for i while

  • Inicjowanie, sprawdzanie warunków oraz zwiększanie i zmniejszanie zmiennych iteracji odbywa się jawnie wyłącznie w składni pętli. Natomiast w pętli while możemy jedynie inicjować i sprawdzać warunek zawarty w składni pętli.
  • Kiedy znamy liczbę iteracji, które muszą wystąpić podczas wykonywania pętli, używamy pętli for. Z drugiej strony, jeśli nie wiemy, ile iteracji musi nastąpić w pętli, używamy pętli while.
  • Jeśli w pętli for nie zostanie zawarta instrukcja warunku, pętla będzie działać w nieskończoność. Natomiast brak instrukcji warunku w pętli while spowoduje błąd kompilacji.
  • Instrukcja inicjująca w składni pętli for jest wykonywana tylko raz na początku pętli. Jeśli składnia pętli while zawiera instrukcję inicjującą, instrukcja inicjująca zostanie wykonana przy każdej iteracji pętli.
  • Instrukcja iteracji w pętli for zostanie uruchomiona po treści pętli for. I odwrotnie, ponieważ instrukcję iteracji można zapisać w dowolnym miejscu pętli while, niektóre instrukcje mogą zostać wykonane po wykonaniu instrukcji iteracji zawartej w treści pętli while.

Wniosek

Pętle są zatem zbiorem poleceń, których należy używać w określonej kolejności. Jeśli struktura pętli jest niepoprawna, program wyświetli błąd składniowy. Pętle działają w celu uzyskania wyniku lub spełnienia warunku lub zestawu warunków. Jest podstawą wszystkich języków programowania.

Podczas wykonywania struktura pętli zadaje pytanie i wykonuje się, aż odpowiedź będzie zadowalająca. To samo pytanie jest zadawane wielokrotnie, aż do momentu zastosowania nowego stwierdzenia. Proces zapętlania trwa w nieskończoność, aż program osiągnie punkt przerwania. Jeżeli punkt krytyczny nie zostanie osiągnięty, program ulegnie awarii.

Obie pętle for i while są instrukcjami warunkowymi. Pętla for to jednowierszowe polecenie, które będzie wykonywane wielokrotnie. Pętle mogą być jednowierszowe lub zawierać wiele poleceń dla jednego warunku.

Zarówno pętla for, jak i pętla while są ważne w językach komputerowych przy uzyskiwaniu wyników. Warunek jest spełniony, jeśli składnia polecenia jest poprawna.

Zarówno pętla for, jak i pętla while są instrukcjami iteracji, ale mają różne cechy. Pętla for deklaruje wszystko (inicjowanie, warunek, iterację) na górze treści pętli. Natomiast w pętli while tylko inicjalizacja i warunek znajdują się na górze treści pętli, a iterację można zapisać w dowolnym miejscu treści pętli.