hlmod.hu
https://hlmod.hu/

[TUT] Ciklusok
https://hlmod.hu/viewtopic.php?f=14&t=29427
Oldal: 1 / 1

Szerző:  Dooz [ 2018.10.03. 17:06 ]
Hozzászólás témája:  [TUT] Ciklusok

Ciklusok
(Nem női ciklus)


A ciklusok ismétlődő tevékenységek megvalósítására szolgálnak.
A ciklusoknak 2 fajtájuk van: Feltételes és Számlálós.

1. Feltételes ciklusok
A futások száma előre nem ismert.

    a) Elöltesztelő feltételes ciklus
    A feltételtől függően, lehetséges, hogy egyszer sem fut le a ciklus.

    1. while(/* Feltétel */){
    2.     //Kód
    3. }


    Példa 1:
    1. new i; //Deklarálunk egy i változót, amelynek az alap értéke 0.
    2. while(i < 1){//Amig (while) az i változó kisebb mint 1, addig ismételje a ciklusban levő kódot.
    3.    i = 1; //Az i változó felveszi az 1-es értéket.
    4. }

    A ciklus csak egyszer fog lefutni, mivel az első lefutásnál még igaz a feltétel (i, azaz 0 kisebb mint 1), de már a második lefutásnál hamis (i, azaz 1 nem kisebb mint 1), mivel megnöveltük az i változó értékét.

    Példa 2:
    1. new i = 2; //Deklarálunk egy i változót, amely felveszi a 2-es értéket.
    2. while(i < 1){//Amig (while) az i változó kisebb mint 1, addig ismételje a ciklusban levő kódot.
    3.   //Kód
    4. }

    A ciklus egyszer sem fog lefutni, mivel a feltétel hamis (i, azaz 2 nem kisebb mint 1).

    Példa 3:
    1. new i; //Deklarálunk egy i változót, amelynek az alap értéke 0.
    2. while(i < 1){//Amig (while) az i változó kisebb mint 1, addig ismételje a ciklusban levő kódot.
    3.   //Kód
    4. }

    Ez egy végtelen ciklus lesz, mivel nem módosítunk az i változón, ezért a feltétel mindig igaz (i, azaz 0 kisebb mint 1).


    b) Hátultesztelő feltételes ciklus
    A feltételtől függetlenül, legalább egyszer lefut a ciklus.

    1. do{
    2.     //Kód
    3. }while(/* Feltétel */)


    Példa 1:
    1. new i; //Deklarálunk egy i változót, amelynek az alap értéke 0.
    2. do{//Ismételd..
    3.    i = 1; //Az i változó felveszi az 1-es értéket.
    4. }while(i < 1)//..amig az i változó kisebb mint 1.

    A ciklus csak egyszer fog lefutni, mivel az első lefutás után megnöveltük az i változó értékét, ezért a feltétel hamis lesz (i, azaz 1 nem kisebb mint 1).

    Példa 2:
    1. new i; //Deklarálunk egy i változót, amelynek az alap értéke 0.
    2. do{//Ismételd..
    3.   //Kód
    4. }while(i < 1)//..amig az i változó kisebb mint 1.

    Ez egy végtelen ciklus lesz, mivel nem módosítunk az i változón, ezért a feltétel mindig igaz (i, azaz 0 kisebb mint 1).

2. Számlálós ciklus
A futások száma előre ismert.

    A For ciklus
    A feltételtől függően, lehetséges, hogy egyszer sem fut le a ciklus.

    1. for(Változó deklarálása; Feltétel; Változó értékének növelése/csökkentése) {
    2.     //Kód
    3. }


    Példa 1:
    1. new n; //Deklarálunk egy n változót, amelynek az alap értéke 0.
    2. for(new i; i < n; i++){
    3.  //Kód
    4. }

    Deklaráltunk a ciklusba egy i változót, amelynek az alap értéke 0. Ezt követöen megadtunk egy feltételt (i kisebb mint n). Ha a feltétel igaz, akkor az i változó értékét növelni fogjuk 1-el (i++) minden lefutás után.

    Jelen esetben a ciklus egyszer sem fog lefutni, mivel a feltétel hamis (0 nem kisebb mint 0).

    Példa 2:
    1. new n = 5;  //Deklarálunk egy n változót, amely felveszi a 5ös értéket.
    2. for(new i; i < n; i++){
    3.  //Kód
    4. }

    A ciklus 5 alkalommal fog lefutni. Minden egyes alkalommal növeljük az i változót értékét 1-el.

    Optimalizációs hibák
    Majdnem minden forráskódban találkoztam a következővel:

    1. new const Something[][] = {
    2.  "Thing1",
    3.  "Thing2",
    4.  "Thing3"
    5. }
    6.  
    7. for(new i; i < sizeof(Something); i++){
    8.  //Kód
    9. }

    Ezzel az a gond, hogy minden lefutásnál lekéri újra a Something méretét.
    Egy ésszerűbb módja ennek az, hogy elmentsük a méretet egy változóba.

    1. new const Something[][] = {
    2.  "Thing1",
    3.  "Thing2",
    4.  "Thing3"
    5. }
    6.  
    7. new Size = sizeof(Something);
    8. for(new i; i < Size; i++){
    9.  //Kód
    10. }


Megjegyzés:
A leírás tartalmazhat helyesírási hibákat vagy elírásokat. Kérlek jelezzétek ezeket felém, hogy javítani tudjam. (Lehetőleg privát üzenetbe)
Ha szeretnétek egyéb "tutorialokat", akkor szivesen fogadom a javaslatokat privát üzenetbe. :)

Szerző:  LeX [ 2018.10.03. 18:10 ]
Hozzászólás témája:  Re: [TUT] Ciklusok

Nagyon szépen köszönöm..

Szerző:  Tomii [ 2018.10.03. 19:21 ]
Hozzászólás témája:  Re: [TUT] Ciklusok

Köszönjük!!!

Szerző:  Supra [ 2018.10.03. 21:43 ]
Hozzászólás témája:  Re: [TUT] Ciklusok

Koszonjuk, lehetne a kovetkezo az "Array" :)

Szerző:  [K]eNu* [ 2018.10.04. 08:14 ]
Hozzászólás témája:  Re: [TUT] Ciklusok

Köszönjük szépen!

Szerző:  The Peace [ 2018.10.04. 10:14 ]
Hozzászólás témája:  Re: [TUT] Ciklusok

Array-t akar a nép!

Csatolmányok:
array.png
array.png [ 142.84 KiB | Megtekintve 5417 alkalommal ]

Oldal: 1 / 1 Minden időpont UTC+02:00 időzóna szerinti
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/