Offline |
|
|
Csatlakozott:2016.02.10. 12:46 Hozzászólások:429 Megköszönt másnak: 61 alkalommal Megköszönték neki: 157 alkalommal
|
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.
while(/* Feltétel */){ //Kód }
Példa 1:
new i; //Deklarálunk egy i változót, amelynek az alap értéke 0. while(i < 1){//Amig (while) az i változó kisebb mint 1, addig ismételje a ciklusban levő kódot. i = 1; //Az i változó felveszi az 1-es értéket. }
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:
new i = 2; //Deklarálunk egy i változót, amely felveszi a 2-es értéket. while(i < 1){//Amig (while) az i változó kisebb mint 1, addig ismételje a ciklusban levő kódot. //Kód }
A ciklus egyszer sem fog lefutni, mivel a feltétel hamis (i, azaz 2 nem kisebb mint 1).
Példa 3:
new i; //Deklarálunk egy i változót, amelynek az alap értéke 0. while(i < 1){//Amig (while) az i változó kisebb mint 1, addig ismételje a ciklusban levő kódot. //Kód }
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.
do{ //Kód }while(/* Feltétel */)
Példa 1:
new i; //Deklarálunk egy i változót, amelynek az alap értéke 0. do{//Ismételd.. i = 1; //Az i változó felveszi az 1-es értéket. }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:
new i; //Deklarálunk egy i változót, amelynek az alap értéke 0. do{//Ismételd.. //Kód }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.
for(Változó deklarálása; Feltétel; Változó értékének növelése/csökkentése) { //Kód }
Példa 1:
new n; //Deklarálunk egy n változót, amelynek az alap értéke 0. for(new i; i < n; i++){ //Kód }
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:
new n = 5; //Deklarálunk egy n változót, amely felveszi a 5ös értéket. for(new i; i < n; i++){ //Kód }
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:
new const Something[][] = { "Thing1", "Thing2", "Thing3" } for(new i; i < sizeof(Something); i++){ //Kód }
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.
new const Something[][] = { "Thing1", "Thing2", "Thing3" } new Size = sizeof(Something); for(new i; i < Size; i++){ //Kód }
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.
A hozzászólást 1 alkalommal szerkesztették, utoljára Dooz 2018.10.03. 18:54-kor.
Ők köszönték meg Dooz nek ezt a hozzászólást (összesen 8):LeX (2018.10.03. 18:10) • [K]eNu* (2018.10.04. 08:14) • jokypapa (2018.10.04. 08:28) • aarpi. (2018.10.04. 09:05) • Tomii (2018.10.04. 19:09) • ✪ BeNiCh' (2020.02.14. 21:49) • DexoN (2020.06.14. 13:16) • exodus (2023.03.07. 23:03) |
|
|