C++ alapok 7. rész – ciklusok

A ciklusok segítségével lehetőségünk van szabályozni hogy mely program részek, utasítások, egészen pontosan mikor, hányszor és meddig fussanak. Alapvetően 3 ciklusfajta áll a rendelkezésünkre. A While, Do-While és For. Lássunk pár példát

For ciklus: 

#include <iostream>

using namespace std;

int main()
{
    for (int i = 0;i<10;i++){
        cout << i;
    }
}

Ahogy láthatjuk a For ciklus után, zárójelben 3 paramétert tudunk megadni. Az első paraméter int i = 0 a ciklus kiinduló pontja amit minden esetben egy változóban kell megadni ami ez esetben egy integer változó és a neve i értéke vagyis a kezdő érték pedig 0. A második paraméter i<10 a ciklus végpontja ahol azt kívánjuk hogy a ciklus véget érjen és ne fusson tovább. Ez esetben azt szeretnénk hogy a ciklus addig fusson még az i értéke kisebb 10-nél tehát 10 alkalommal, ha az i értéke eléri a 10-et már ne fusson le a ciklus. A harmadik paraméter gyakorlatilag bármilyen utasítás lehet és opcionális, nem kötelező megadni. A for ciklus működéséhez elég csak az első két paramétert megadni. Ebben az esetben azt az utasítást adtuk harmadik paraméternek hogy az i értéke minden ciklus során növekedjen eggyel i++. A for ciklusban az első és második paraméter után ; jelet kell raknunk ezzel jelezve a paraméter végét, az utolsó paraméter után nem kell ilyen jelet raknunk, elég a ) jel. Az utasítást pedig amit szeretnénk hogy minden ciklus során lefusson {} jelek közé kell írjuk ezzel jelezve a programunkban hogy hol kezdődik és ér véget a for ciklusunk. Ebben az esetben azt az utasítást futtatjuk le minden ciklusban hogy írja ki az i értékét. Ha lefuttatjuk a programot, egy számsort fogunk látni 0123456789 vagyis 10 számot ami azt jelenti hogy a ciklusunk pontosan 10 alkalommal futott le csak ahogy szerettük volna. Ennél a példánál fontos megérteni hogy nem a számsor a lényeg, a számsoron keresztül csak pontosan láthatjuk hogy hányszor és hogyan futott le a ciklus. Ha például az utolsó paramétert eltávolítjuk i++ vagyis nem növeljük az i értékét, a ciklus örökké fog futni mivel a második paraméter i<10 nem teljesül mivel az i értéke soha nem fogja elérni a 10-et. Ha pedig harmadik paraméternek azt adjuk meg hogy az i értéke 2-vel növekedjen minden ciklus során, i+=2 akkor a ciklusunk csak ötször fog lefutni mivel így hamarabb éri el az i értéke a 10-et, a számoknak köszönhetően ezt láthatjuk is ha lefuttatjuk a programot, mivel a számsor ebben az esetben 02468.

A for cikluson keresztül egyszerűen szabályozhatjuk hogy egyes utasítások, funkciók, program részek, pontosan hányszor fussanak le, illetve pontosan meddig fussanak.

 

While ciklus:

#include <iostream>

using namespace std;

int main()
{
    string i = "fut";

    while (i=="fut"){
        cout << i;

    }
}

 

A While ciklus a For ciklussal ellentétben nem azt hivatott szabályozni hogy pontosan hányszor, hanem azt hogy pontosan mikor és meddig fusson a megadott utasítás. Ennek megfelelően a zárójelek közé gyakorlatilag bármilyen paramétert, feltételt megadhatunk akár csak egy If feltétel vizsgálat esetén. Ebben az esetben azt adtuk meg hogy addig illetve akkor fusson a ciklus ha az i értéke az hogy fut amit a cikluson kívül meg is adtuk, így hát teljesül is a feltétel és ha lefuttatjuk a programot, a ciklus örökké fut mivel a feltétel vagyis hogy az i értéke legyen “fut”, soha sem változik. Utasítás szintén {} jelek közé kerül ezzel jelezve hogy hol kezdődik és ér véget a ciklus a programunkban. Ebben az esetben az utasítás az hogy írja ki az i értékét vagyis hogy “fut”. Csak a példa kedvéjért, mondjuk 9 ciklus után, változtassuk meg az i értékét hogy a ciklus ne fusson tovább:

#include <iostream>

using namespace std;

int main()
{
    string i = "fut";
    int szamlalo;

    while (i=="fut"){
        cout << i;
        szamlalo++;
        if (szamlalo > 9){
            i = "állj";

While you might think there is nothing to feel so embarrassed levitra uk find for info about. This disorder caused semen to back up its certainty of treating erectile dysfunction. http://deeprootsmag.org/2013/01/15/when-patti-page-left-her-mark-on-me/ buy viagra Regular use of this  cheap viagra from india herbal pill two times with plain water or milk helps to increase sperm count and promote the flow of blood that carries oxygen and other nutrients. The chemical is extremely helpful to increase the size of the male organ in terms of length and girth - then realize that the  cialis discount generic supplement in question is really just a form of "erection" enhancement and may not be right with her body or with her mind.         }

    }
}

 

Ahogy láthatjuk a cikluson kívül létrehoztunk egy új integer változót szamlalo aminek az értékét a cikluson belül, minden ciklus után növeljük eggyel szamlalo++ és végül egy if feltételben ellenőrizzük az értékét. Ha a változó értéke nagyobb 9-nél, megváltoztatjuk az i értékét “állj”-ra, így a ciklus nem fut le többször és megáll mivel csak akkor fut ha az i értéke az hogy “fut”. Ugyan ezt a hatást elérhetjük a break utasítást használva is:

while (i=="fut"){
        cout << i;
        szamlalo++;
        if (szamlalo > 9){
            break;

        }

    }

        

 

C++-ban a break utasítással bármikor megállíthatunk egy ciklust. Azonban mivel a While ciklust gyakorlatilag ugyan úgy kezelhetjük mint egy If feltételt, a legelegánsabb talán ha a változó értékét közvetlenül egy paraméterként ellenőrizzük:

while (i=="fut" and szamlalo < 9){
        cout << i;
        szamlalo++;
    }

Ha lefuttatjuk a programot, ugyan azt az eredményt kapjuk mint korábban az if feltétel vizsgálatával és break utasítás alkalmazásával. Mivel a szamlalo értéke minden ciklus során növekszik eggyel, és a ciklus egyik feltétele hogy a szamlalo értéke legyen kisebb 9-nél, amikor eléri a változó értéke a 9-et a ciklus nem fut többször le.

 

Do – While ciklus:

#include <iostream>

using namespace std;

int main()
{
    int a;
    do {
        cout << "fut";
        a++;
    }while (a == 0);
}

 

A Do-While ciklus feladata az előző ciklusokkal ellentétben hogy meghatározza hogy egy utasítás pontosan meddig fusson, mikor álljon meg. Tehát nem az hogy mikor és hányszor, csak az hogy meddig. Az utasítás a do parancsot követően {} jelek közé kerül, ezzel jelezve hogy a ciklus pontosan mettől meddig tart. Közvetlenül } jel után pedig a while parancsot használjuk annak meghatározására hogy a do ciklus pontosan mikor álljon meg.  Ebben az esetben a ciklus addig fut még az a változó értéke egyenlő 0-val a==0. Mivel minden ciklus során növeljük a változó értékét eggyel a++, a ciklusunk csak egyszer fut le, ha növeljük a számot a==3 a ciklusunk akkor fog megállni ha a változó értéke eléri a 3-at. Akár csak korábban a While ciklusnál vagy If feltétel vizsgálatnál, itt is akár több feltételt is megadhatunk a () jelek között hogy mikor álljon meg a do ciklus.

 

Ezzel a végére is értünk a ciklusoknak, remélem érthetően sikerül elmagyaráznom. Ha zavarna bárkit hogy mégis minek ennyi fajta ciklus mikor gyakorlatilag ugyanazt megoldhatjuk bármelyikkel, azt javaslom hogy tekintsünk úgy rá mint 3 eltérő módja annak hogy szabályozzuk mikor, hányszor és meddig fusson egy utasítás és azt használhatjuk amelyiket csak szeretnénk, amelyik a leginkább alkalmas a feladatra, amelyikkel a legegyszerűbben elérhetjük amit akarunk.