Programozás‎ > ‎

Ciklusok

A ciklusok egy utasítás vagy utasítás-blokk ismételt végrehajtását teszik lehetővé. A ciklus feltétele szabályozza, hogy hányszor (meddig) kell ismételgetni a ciklusmagban megadott utasításokat.

Elöltesztelős ciklus

Ciklus amíg feltétel
    utasítás
Ciklus vége

Pascal

    while feltétel do utasítás


    while feltétel do 
    begin
        utasítás blokk
    end

Java, C, C++, C#

    while( feltétel ) utasítás

    while( feltétel ) {
        utasítás blokk
    }

Hátultesztelős ciklus

Ciklus
    utasítás
amíg feltétel
Ciklus vége

Pascal

Vigyázat!!! Pascal-ban a hátultesztelős ciklusban a kilépési feltételt kell megadni. ("Ciklus .. hacsak")

     repeat 
            utasítás blokk 
     until kilépési feltétel

Java, C, C++, C#

   
    do{
        utasítás blokk
      } while( feltétel )

Számlálós ciklus

Ciklus ciklusváltozó := kezdet-től vég-ig
    utasítás
Ciklus vége

Pascal

    for i := kezdet to vég do utasítás 

   
    for i := kezdet to vég do 
    begin
        utasítás blokk
    end

Java, C, C++, C#

A C-típusú nyelvekben a for-ciklus egy speciális while. A következő két kód egyenértékű:

for(kezdetben;feltétel; növekmény){
    utasítások
}


kezdetben
while(feltétel){
    utasítások
    növekmény
}

Példák

A ciklusok működésének illusztrálására többféle módon megoldjuk a következő problémát: ki kell írni a képernyőre (standard kimenetre) a pozitív egész számokat 1-től 42-ig, növekvő sorrendben, szóközökkel elválasztva.

Pascal

program ciklus;
var i : byte;
begin
    i := 1;
    while i <= 42 do
    begin
        write(i,' ');
        i := i + 1;
    end;
end.


program ciklus;
var i : byte;
begin
    i := 1;
    repeat
        write(i,' ');
        i := i + 1;
    until i > 42;
end.


program ciklus;
var i : byte;
begin
    for i := 1 to 42 do write(i,' ');
end.


Java, C, C++, C#

Csak a ciklust kódoló részt adjuk meg, abban nincs különbség.

i = 1;
while( i <= 42){
    i kiírása a nyelvnek megfelelően
    i++;
}


i = 1;
do {
    i kiírása a nyelvnek megfelelően   
    i++;
} while( i <= 42)


for( i = 1; i <= 42; i++ ){
    i kiírása a nyelvnek megfelelően   
}