különbség a For és while hurok között
C++ és Java nyelven az iterációs utasítások, for hurok, while hurok és do-while hurok lehetővé teszik az utasítások sorozatának ismételt végrehajtását, amíg a feltétel igaz, és megszűnik, amint a feltétel hamis lesz. Az iterációs utasításokban szereplő feltételek előre definiálhatók, mint a For loop-ban, vagy nyílt végűek, mint a while loop-ban.
számos ‘ for ‘ hurok variáció létezik a C++ – ban, hogy növelje annak alkalmazhatóságát, erejét és rugalmasságát. Például a for hurok lehetővé teszi számunkra, hogy egynél több változót használjunk a hurkon belül annak vezérléséhez, valamint a converge függvény használatát a ‘for’ hurokkal. Ezzel szemben, míg hurok nem tudjuk használni sok variáció, hogy kell használni a standard szintaxis.
van néhány jelentős különbség a for és while hurkok között, amelyeket egy összehasonlító táblázat segítségével tovább magyarázunk.
tartalom: a hurok Vs míg hurok
- összehasonlító táblázat
- meghatározás
- legfontosabb különbségek
- következtetés
összehasonlító táblázat
összehasonlítási alap | ||
---|---|---|
deklaráció | for (inicializálás; feltétel; iteráció){ / /’ for ‘ hurok teste } |
while (feltétel) { utasítások; // huroktest } |
Format | inicializálás, állapotellenőrzés, iterációs utasítás a hurok tetejére van írva. | csak az inicializálás és az állapotellenőrzés történik a hurok tetején. |
használja a | a ‘for’ hurkot, amelyet csak akkor használunk, ha már tudtuk az iterációk számát. | a ‘while’ hurok csak akkor használható, ha az iteráció száma nem pontosan ismert. |
feltétel | ha a feltétel nem szerepel a’ for ‘ hurokban, akkor a hurok végtelen alkalommal ismétlődik. | ha a feltétel nem kerül a ‘while’ hurokba, akkor fordítási hibát okoz. |
inicializálás | a’ for ‘ hurokban az inicializálás, ha megtörtént, soha nem ismétlődik meg. | a while loop-ban ha az inicializálás az állapotellenőrzés során történik, akkor az inicializálás minden alkalommal megtörténik, amikor a hurok iterálódik. |
iterációs utasítás | A’ for ‘ hurokban az iterációs utasítás felül van írva, ezért csak a hurok összes utasításának végrehajtása után hajt végre. | a ‘while’ hurokban az iterációs utasítás bárhol írható a hurokban. |
a For loop definíciója
a Java-ban a for loops két formája létezik. Az első forma “hagyományos” forma, a második pedig “mindenkinek” forma.
szintaxis
a hagyományos for loop utasítás általános formája.
for (initialization; condition; iteration){//body of for loop}
- inicializálás: a for loop hurokvezérlő változójának inicializálását csak egyszer hajtják végre, a hurok első iterációja során. Itt a ciklusvezérlő változó inicializálódik, néha, ha a ciklusváltozót nem használják újra a programban, és csak a ciklus vezérlő változójaként használják, akkor mind deklarálva, mind inicializálva a ‘for’ ciklusban.
- feltétel: a ‘for’ ciklus feltétele minden alkalommal végrehajtásra kerül, amikor a ciklus ismétlődik.
- növekmény és iteráció: az iterációs utasítás olyan kifejezés, amely növeli vagy csökkenti a ciklusvezérlő változót.
amikor a hurok végrehajtásra kerül, először az inicializálási feltétele kerül végrehajtásra; ezután ellenőrizzük az állapotot. Ha a feltétel teljesül, a hurok teste végrehajtásra kerül, majd az iterációs utasítás végrehajtásra kerül. Ezután ismét ellenőrizzük a feltételt, hogy megtudjuk, hogy a hurok tovább fog-e iterálni, vagy véget ér-e.
Java-ban az inicializáló utasítás és az iterációs utasítás egynél több utasítást is tartalmazhat. Minden állítást vesszővel választanak el egymástól, a Java-ban a vessző elválasztó, míg a C++ – ban a “vessző” olyan operátor, amely bármilyen érvényes kifejezésben használható.
for-each ciklus és szintaxisa
a “for-each” forma egy továbbfejlesztett for ciklus. A for-minden hurok általános formája a következő.
for(type iter_variable: collection) statement-block
itt a “típus” határozza meg az iterációs változó típusát, amelyet az iterációs változó követ. Az iterációs változó megkapja az elemet a gyűjteményváltozótól. A típusnak meg kell egyeznie a gyűjteményváltozóban tárolt elemek típusával. A For-minden formája for hurok automatizálja az iteráció a hurok elejétől a végéig elérve az értékeket sorrendben.
példa
vannak különböző típusú gyűjtemény használt hurok. Beszéljük meg egy tömb, mint egy gyűjtemény.
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); }}// outputvalue in c 10value in c 20value in c 30value in c 40value in c 50value in c 60additon of array elements is 210
itt a ‘c’ egy iterációs változó; az értékeket a tömbtől kapja, egyenként, a tömb legalacsonyabb indexétől a legmagasabb indexig. Itt a hurok addig ismétlődik, amíg a tömb összes elemét meg nem vizsgáljuk. Lehetőség van a hurok megszüntetésére a ” szünet “használatával. Az iterációs változó változása azonban nem befolyásolja a tömböt, mivel ez csak olvasható változó.
A while loop definíciója
a while loop a legalapvetőbb hurok, ami elérhető a C++ és Java nyelveken. A while hurok működése hasonló mind a C++, mind a Java esetében.
szintaxis
a while ciklus deklarációja a következő
while ( condition) {statements; //body of loop}
a while ciklus kezdetben ellenőrzi a feltételt, majd végrehajtja az utasításokat, amíg a while ciklus állapota igaznak nem bizonyul. A while hurok feltétele bármilyen logikai kifejezés lehet. Ha egy kifejezés nem nulla értéket ad vissza, akkor a feltétel igaz, és ha a kifejezés nulla értéket ad vissza, akkor a feltétel hamis lesz.
ha a feltétel igaz lesz, akkor a hurok iterálja magát, és ha a feltétel hamis lesz, akkor a vezérlő a kód következő sorába lép, amelyet közvetlenül a ciklus követ. Az állítások vagy a testhurok lehetnek üres utasítások, vagy egyetlen utasítások vagy utasítások blokkjai.
példa
beszéljük meg egy while hurok működését. Az alábbi példában a kód 1-től 10-ig fog nyomtatni.
//example is in Java.public class Main{ public static void main (String args) { int n=0; while(n<10) { n++; System.out.println("n=" +n); } }}//outputn=1n=2n=3n=4n=5n=6n=7n=8n=9n=10
itt az ‘n’ kezdeti értéke 0, ami a while hurok feltételét igazvá teszi. Ezután a vezérlő belép a while hurok testébe, és az ‘n’ értéke növekszik a while hurok testében lévő első utasításnak megfelelően.
az ‘n’ értéke kinyomtatásra kerül, majd a vezérlés egy while ciklusban visszatér a feltételhez, most az ‘n’ értéke 1, amely ismét kielégíti a feltételt, és a hurok teste ismét végrehajtásra kerül. Ez addig folytatódik, amíg a feltétel igaz, amint a feltétel hamis lesz, a hurok megszűnik.
mint a ‘for’ hurok, a ‘while’ hurok is inicializálhatja a vezérlő változót a hurok tetején, azaz az állapot ellenőrzése során.
//for examplewhile((ch = getchar( ) ) != 'A'){System.out.println(" The input alphabet " +ch);}
itt inicializálódik a ‘ch’ vezérlőváltozó, és a hurok állapotát a hurok tetején ellenőrzik.
Megjegyzés
legyen ez egy for hurok vagy egy while hurok, ha csak egy utasítás van a hurok testében, a göndör zárójelek ebben az állapotban nem szükségesek.
kulcsfontosságú különbségek a for és while ciklus között
- in for loop, inicializálás, feltételellenőrzés, valamint az iterációs változó növelése vagy csökkentése kifejezetten csak egy hurok szintaxisában történik. Ezzel szemben a while ciklusban csak a ciklus szintaxisában inicializálhatjuk és ellenőrizhetjük a feltételt.
- ha tisztában vagyunk az iterációk számával, amelyeknek egy hurok végrehajtása során meg kell történniük, akkor használjuk hurok. Másrészt, ha nem vagyunk tisztában az iteráció számával, amelynek egy hurokban meg kell történnie, akkor használjuk while hurok.
- ha nem tesz feltétel nyilatkozatot a hurok, ez vezet egy végtelen iteráció egy hurok. Ezzel szemben, ha nem tesz feltétel nyilatkozatot a while ciklus vezet fordítási hiba.
- a For ciklus szintaxisában az inicializálási utasítás csak egyszer fut le a ciklus elején. Ezzel szemben, ha a while hurok szintaxisában inicializálási utasítást hordoz, akkor a while hurok inicializálási utasítása minden alkalommal végrehajtódik, amikor a hurok iterálódik.
- az iterációs utasítás A for ciklusban a test for ciklus végrehajtása után hajtódik végre. Éppen ellenkezőleg, az iterációs utasítás bárhol megírható a while hurok testében, tehát lehetnek olyan állítások, amelyek az iterációs utasítás végrehajtása után hajtanak végre a while hurok testében.
következtetés
a For ciklus és a while ciklus egyaránt iterációs utasítás, de mindkettőnek megvan a maga sajátossága. A for hurok minden deklarációja (inicializálás, feltétel, iteráció) a hurok testének tetején található. A While loop-ban csak az inicializálás és a feltétel a hurok testének tetején van, és az iteráció bárhol írható a hurok testében.