logo

Smyčka For vs. While v C

Pochopení rozdílu mezi smyčkou for a smyčkou while

Iterační příkazy v C++, jako je smyčka for, smyčka while a smyčka do-while, umožňují opakované provádění sady instrukcí, dokud není podmínka pravdivá, a poté se ukončí, pokud je podmínka nepravdivá. Iterační příkazy mohou mít předdefinované podmínky, například ve smyčce for, nebo podmínky s otevřeným koncem, například ve smyčce while.

V C++ se předpokládá řada variací smyček „for“, aby se zvýšila použitelnost, výkon a flexibilita jazyka. Například smyčka for nám umožňuje řídit smyčku pomocí více proměnných uvnitř ní a také pomocí funkce konvergovat se smyčkou „for“. Naproti tomu u cyklu while nemůžeme použít mnoho variant; musí být použit se standardní syntaxí.

Mezi cykly for a while jsou některé významné rozdíly, které jsou dále vysvětleny pomocí srovnávací tabulky.

Smyčka For vs. While v C

For Loop je definován jako

V Javě existují dva typy smyček for. První je „tradiční“ forma, zatímco druhá je forma „pro každého“.

Nejobecnější forma příkazu cyklu for.

 for (initialization; condition; iteration) { //body of for loop } 
    Inicializace:Řídicí proměnná smyčky for smyčky je inicializována pouze jednou, během první iterace smyčky. Zde se inicializuje proměnná řízení smyčky; pokud se proměnná smyčky v programu již nikdy nepoužije a použije se pouze jako řídicí proměnná smyčky, je deklarována a inicializována ve smyčce „for“.Stav:Podmínka cyklu „for“ se provede pokaždé, když je smyčka iterována.
  • Příkaz iterace je výraz, který zvyšuje nebo snižuje proměnnou řídící smyčku.

Když je smyčka provedena, nejprve se provede inicializační podmínka a poté kontrola stavu. Pokud je podmínka splněna, provede se tělo smyčky následované příkazem iteration. Podmínka je poté znovu zkontrolována, aby se určilo, zda se bude smyčka dále opakovat, nebo skončí.

V Javě mohou příkazy inicializace i iterace obsahovat více příkazů. Každý příkaz odděluje čárka; v Javě je čárka oddělovačem; v C++ je čárka operátor, který lze použít v jakémkoli platném výrazu.

Syntaxe smyčky for-each

Formulář „for-each“ je pokročilejší verzí cyklu for. Smyčka for-each má následující obecný tvar.

 for(type iter_variable: collection) statement-block 

Parametr 'type' určuje typ iterační proměnné, za kterou následuje proměnná iterace. Prvek z proměnné kolekce bude předán do proměnné iterace. Typ musí odpovídat typu prvků v proměnné kolekce. Forma for-každého cyklu for automatizuje iteraci smyčky od začátku do konce a přistupuje k hodnotám v sekvenčním pořadí.

Příklad

Existují různé typy kolekcí, které lze použít se smyčkou for. Promluvme si o tom pomocí pole jako kolekce.

 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); } } 

Výstup:

 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' je v tomto případě iterační proměnná; obdrží hodnoty z pole[], jednu po druhé, od nejnižšího po nejvyšší index v poli. Smyčka se opakuje, dokud nejsou prozkoumány všechny prvky pole. Smyčku lze uprostřed přerušit pomocí 'break'. Na druhou stranu změna v proměnné iterace nemá na pole žádný vliv, protože je to proměnná pouze pro čtení.

Zatímco smyčka je definována jako

Smyčka while je nejzákladnější smyčkou v C++ i Javě. Operace while loop je podobná v C++ a Javě.

Syntax

Následuje deklarace cyklu while:

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

Cyklus while nejprve zkontroluje podmínku a poté provede příkazy, dokud není podmínka v cyklu while pravdivá. V cyklu while může být podmínkou jakýkoli booleovský výraz. Když výraz vrátí nenulovou hodnotu, podmínka je pravdivá; když vrátí nulovou hodnotu, podmínka je nepravdivá.

Pokud je podmínka pravdivá, smyčka se sama iteruje; je-li podmínka nepravdivá, je řízení předáno řádku kódu bezprostředně za smyčkou. Smyčka těla nebo příkazy mohou být prázdným příkazem, jedním příkazem nebo blokem příkazů.

Příklad

Podívejme se, jak funguje smyčka while. Kód v níže uvedeném příkladu se vytiskne 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)>

V horní části smyčky se inicializuje řídicí proměnná 'ch' a ověří se stav smyčky.

f filmy

Poznámka: Pokud je v těle cyklu pouze jeden příkaz, ať už jde o cyklus for nebo cyklus while, složené závorky nejsou vyžadovány.

Jaký je v C rozdíl mezi smyčkou for a while?

Parametry Pro Loop Zatímco smyčka
Prohlášení for(inicializace ; podmínka ; iterace ) {
//tělo cyklu 'for'
}
inicializace
zatímco ( podmínka ) {
prohlášení;
//tělo smyčky
}
Formát. V horní části cyklu se zapisuje inicializace, kontrola stavu a iterační příkazy. V horní části smyčky se provádí pouze inicializace a kontrola stavu.
Použití. Smyčka 'for' byla použita pouze tehdy, když již byl znám počet iterací. Pokud není počet iterací znám, použije se smyčka 'while'.
Stav. Pokud podmínka není zahrnuta ve smyčce „for“, smyčka se opakuje donekonečna. Pokud podmínka není zahrnuta ve smyčce 'while', dojde k chybě kompilace.
Inicializace Inicializace se nikdy neopakuje ve smyčce „for“. Pokud je inicializace provedena během kontroly stavu ve smyčce while, inicializace se provede pokaždé, když se smyčka iteruje.
Iterační tvrzení Protože příkaz iterace ve smyčce 'for' je zapsán nahoře, provede se až po provedení všech příkazů v cyklu. Příkaz iterace v cyklu „while“ lze zapsat kdekoli v cyklu.

Klíčové rozdíly mezi smyčkou for a while

  • Inicializace, kontrola podmínek a inkrementace nebo dekrementace iteračních proměnných jsou všechny prováděny explicitně pouze v syntaxi smyčky. Naproti tomu ve smyčce while můžeme pouze inicializovat a zkontrolovat podmínku v syntaxi smyčky.
  • Když známe počet iterací, které musí nastat při provádění cyklu, použijeme cyklus for. Na druhou stranu, pokud nevíme, kolik iterací musí v cyklu nastat, použijeme cyklus while.
  • Pokud do cyklu for nezahrnete příkaz podmínky, bude se smyčka opakovat donekonečna. Naproti tomu selhání při zahrnutí příkazu podmínky do cyklu while bude mít za následek chybu kompilace.
  • Příkaz inicializace v syntaxi cyklu for se provede pouze jednou na začátku cyklu. Pokud syntaxe smyčky while obsahuje inicializační příkaz, bude inicializační příkaz proveden pokaždé, když smyčka iteruje.
  • Příkaz iterace v cyklu for se spustí za tělem cyklu for. Naopak, protože příkaz iterace lze zapsat kdekoli v těle cyklu while, mohou existovat některé příkazy, které se provedou po provedení příkazu iterace v těle cyklu while.

Závěr

Smyčky jsou tedy souborem příkazů, které je nutné použít v určitém pořadí. Pokud je struktura smyčky nesprávná, programování zobrazí chybu syntaxe. Smyčky běží za účelem získání výsledku nebo splnění podmínky nebo sady podmínek. Je základem všech programovacích jazyků.

Během provádění položí struktura smyčky otázku a provádí se, dokud není odpověď uspokojivá. Stejná otázka je pokládána znovu a znovu, dokud není použito nové prohlášení. Proces opakování pokračuje neomezeně dlouho, dokud program nedosáhne bodu přerušení. V případě, že nebude dosaženo bodu zlomu, program se zhroutí.

Cykly for a while jsou podmíněné příkazy. Cyklus for je jednořádkový příkaz, který se bude provádět opakovaně. Zatímco smyčky mohou být jednořádkové nebo mohou obsahovat více příkazů pro jednu podmínku.

Smyčka for i smyčka while jsou důležité v počítačových jazycích pro získání výsledků. Podmínka je splněna, pokud je syntaxe příkazu správná.

Cyklus for i cyklus while jsou iterační příkazy, ale mají odlišné vlastnosti. Cyklus for deklaruje vše (inicializaci, podmínku, iteraci) v horní části těla smyčky. Naproti tomu pouze inicializace a podmínka jsou v horní části těla smyčky ve smyčce while a iteraci lze zapsat kdekoli v těle smyčky.