logo

For vs. While ciklus C-ben

A for ciklus és a while ciklus közötti különbség megértése

A C++ iterációs utasításai, például a for loop, a while ciklus és a do-while ciklus, lehetővé teszik egy utasításkészlet ismételt végrehajtását, amíg a feltétel igaz, majd leáll, ha a feltétel hamis. Az iterációs utasítások rendelkezhetnek előre meghatározott feltételekkel, például for ciklusban, vagy nyílt végű feltételekkel, például while ciklusban.

A C++ nyelvben számos „for” ciklusváltozat szükséges a nyelv alkalmazhatóságának, teljesítményének és rugalmasságának növelése érdekében. Például a for ciklus lehetővé teszi a hurok vezérlését a benne lévő több változó használatával, valamint a konverge függvény használatát a 'for' ciklussal. Ezzel szemben nem használhatunk sok variációt a while ciklussal; szabványos szintaxissal kell használni.

Van néhány jelentős különbség a for és a while ciklusok között, amelyeket egy összehasonlító táblázat segítségével magyarázunk tovább.

For vs. While ciklus C-ben

A For Loop a következőképpen van meghatározva

A Java-ban kétféle for ciklus létezik. Az első a „hagyományos”, míg a második a „mindenkinek” forma.

A for ciklus utasítás legáltalánosabb formája.

 for (initialization; condition; iteration) { //body of for loop } 
    Inicializálás:A for ciklus ciklusvezérlő változója csak egyszer inicializálódik, a ciklus első iterációja során. Itt inicializálódik a hurokvezérlő változó; ha a ciklusváltozót soha többé nem használják a programban, és csak a ciklus vezérlő változójaként használják, akkor a 'for' ciklusban deklarálják és inicializálják.Feltétel:A 'for' ciklus feltétele a ciklus minden iterálásakor végrehajtásra kerül.
  • Az iterációs utasítás egy olyan kifejezés, amely növeli vagy csökkenti a ciklusvezérlő változót.

A ciklus végrehajtásakor először az inicializálási feltétel kerül végrehajtásra, majd az állapotellenőrzés következik. Ha a feltétel teljesül, a ciklus törzse végrehajtásra kerül, majd az iterációs utasítás következik. A feltételt ezután újra ellenőrzi annak megállapítása érdekében, hogy a ciklus tovább folytatódik-e vagy befejeződik.

Java nyelven az inicializálási és az iterációs utasítások több utasítást is tartalmazhatnak. Az egyes állításokat vessző választja el; Java nyelven a vessző elválasztó; a C++ nyelvben a vessző olyan operátor, amely bármely érvényes kifejezésben használható.

A for-each ciklus szintaxisa

A „for-each” űrlap a for ciklus fejlettebb változata. A for-each ciklus a következő általános formát ölti.

 for(type iter_variable: collection) statement-block 

A 'type' paraméter az iterációs változó típusát adja meg, amelyet az iterációs változó követ. A gyűjteményváltozó eleme átkerül az iterációs változóba. A típusnak meg kell egyeznie a gyűjteményváltozó elemeinek típusával. A for ciklus for-each formája automatizálja a ciklus iterációját az elejétől a végéig, és szekvenciális sorrendben éri el az értékeket.

Példa

Különféle típusú gyűjtemények használhatók for hurokkal. Beszéljünk róla egy tömb gyűjteményként való használatával.

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

Kimenet:

 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 

A 'c' egy iterációs változó ebben az esetben; az array[]-ből kapja meg az értékeket egyenként, a tömb legalacsonyabb indexétől a legmagasabb indexig. A ciklus addig iterál, amíg a tömb összes elemét meg nem vizsgálja. A hurok közepén megtörhető a 'break' használatával. Az iterációs változó változása viszont nincs hatással a tömbre, mivel az csak olvasható változó.

Míg a hurok a következőképpen van meghatározva

A while ciklus a legalapvetőbb ciklus mind C++, mind Java nyelven. A while ciklus működése hasonló a C++-ban és a Java-ban.

Szintaxis

A következő a while ciklus deklarációja:

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

A while ciklus először ellenőrzi a feltételt, majd végrehajtja az utasításokat, amíg a while ciklusban lévő feltétel igaz nem lesz. Egy while ciklusban a feltétel bármilyen logikai kifejezés lehet. Ha egy kifejezés nullától eltérő értéket ad vissza, a feltétel igaz; amikor nulla értéket ad vissza, a feltétel hamis.

Ha a feltétel igaz, a ciklus önmagát iterálja; ha a feltétel hamis, a vezérlés a ciklust közvetlenül követő kódsorba kerül. A törzshurok vagy utasítások lehetnek üres utasítások, egyetlen utasítás vagy utasításblokk.

Példa

Nézzük meg, hogyan működik a while ciklus. Az alábbi példában szereplő kód 1 és 10 között jelenik meg.

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

A hurok tetején a 'ch' vezérlőváltozó inicializálódik, és a hurok állapota ellenőrzésre kerül.

Megjegyzés: Ha csak egy utasítás van a ciklus törzsében, legyen az for ciklus vagy while ciklus, akkor a kapcsos kapcsos zárójelekre nincs szükség.

C-ben mi a különbség a for ciklus és a while között?

Paraméterek For Loop Míg a Loop
Nyilatkozat for(inicializálás ; feltétel ; iteráció ) {
//a 'for' ciklus törzse
}
inicializálás
while ( feltétel ) {
nyilatkozatok;
//huroktest
}
Formátum. A ciklus tetején az inicializálás, a feltétel-ellenőrzés és az iterációs utasítások íródnak. A hurok tetején csak inicializálás és állapotellenőrzés történik.
Használat. A 'for' ciklust csak akkor használták, ha már ismert volt az iterációk száma. Ha az iterációk száma nem ismert, a 'while' ciklus kerül felhasználásra.
Feltétel. Ha a feltétel nem szerepel a 'for' ciklusban, a ciklus korlátlan ideig iterál. Ha a feltétel nem szerepel a 'while' ciklusban, fordítási hiba történik.
Inicializálás Az inicializálás soha nem ismétlődik „for” ciklusban. Ha az inicializálást a feltétel-ellenőrzés során hajtják végre egy while ciklusban, akkor az inicializálás minden alkalommal megtörténik, amikor a ciklus ismétlődik.
Iterációs állítás Mivel a 'for' ciklus iterációs utasítása a tetejére van írva, csak azután hajtódik végre, hogy a ciklusban lévő összes utasítás végrehajtásra került. A 'while' ciklusban lévő iterációs utasítás a ciklus bárhová beírható.

A legfontosabb különbségek a for és a while ciklus között

  • Az inicializálás, a feltétel-ellenőrzés és az iterációs változók növelése vagy csökkentése kizárólag a ciklus szintaxisában történik. Ezzel szemben a while ciklusban csak a ciklus szintaxisában tudjuk inicializálni és ellenőrizni a feltételt.
  • Ha tudjuk, hogy hány iterációnak kell bekövetkeznie egy ciklusvégrehajtás során, akkor a for ciklust használjuk. Másrészt, ha nem tudjuk, hány iterációnak kell történnie egy ciklusban, akkor egy while ciklust használunk.
  • Ha nem ad meg feltétel utasítást a for ciklusban, a ciklus korlátlanul fog ciklusolni. Ezzel szemben, ha a feltétel utasítást nem szerepelteti a while ciklusban, az fordítási hibát eredményez.
  • A for ciklus szintaxisának inicializálási utasítása csak egyszer kerül végrehajtásra a ciklus elején. Ha a while ciklus szintaxisa tartalmaz inicializálási utasítást, akkor az inicializálási utasítás a ciklus minden iterálásakor végrehajtásra kerül.
  • Az iterációs utasítás a for ciklusban a for ciklus törzse után fog futni. Ellenkezőleg, mivel az iterációs utasítás a while ciklus törzsébe bárhová írható, előfordulhatnak olyan utasítások, amelyek a while ciklus törzsében lévő iterációs utasítás végrehajtása után hajtódnak végre.

Következtetés

A hurkok tehát parancsok gyűjteménye, amelyeket meghatározott sorrendben kell használni. Ha a hurok szerkezete helytelen, a programozás szintaktikai hibát jelenít meg. A hurkok azért futnak, hogy eredményt érjenek el, vagy teljesítsenek egy feltételt vagy feltételrendszert. Ez minden programozási nyelv alapja.

A végrehajtás során a ciklusstruktúra feltesz egy kérdést, és addig hajtja végre, amíg a válasz kielégítő. Ugyanazt a kérdést újra és újra felteszik az új állítás alkalmazásáig. A hurkolási folyamat korlátlanul folytatódik, amíg a program el nem ér egy töréspontot. Abban az esetben, ha a töréspontot nem éri el, a program összeomlik.

A for és a while ciklus egyaránt feltételes utasítás. A for ciklus egy egysoros parancs, amely többször is végrehajtásra kerül. Míg a hurkok lehetnek egysorosak, vagy több parancsot is tartalmazhatnak egyetlen feltételhez.

A for ciklus és a while ciklus egyaránt fontos a számítógépes nyelvekben az eredmények eléréséhez. A feltétel teljesül, ha a parancs szintaxisa megfelelő.

Mind a for ciklus, mind a while ciklus iterációs utasítások, de eltérő jellemzőkkel rendelkeznek. A for ciklus mindent (inicializálást, feltételt, iterációt) deklarál a ciklustörzs tetején. Ezzel szemben egy while ciklusban csak az inicializálás és a feltétel található a ciklus törzsének tetején, és az iteráció bárhol írható a ciklus törzsébe.