Kezdőoldal » Számítástechnika » Programozás » Visual C#: Mi a különbség a...

Visual C#: Mi a különbség a for és a while között, és hogyan kell őket használni?

Figyelt kérdés

Úgy tudom, hogy a while egy végtelen ciklus (vagy addig ismétli, amíg nem teljesül a feltétel), a for meg valami más.

De MI?



2013. febr. 10. 11:40
 1/8 anonim ***** válasza:

A for ciklust általában arra szkták használni, hogy egyesével elszámoljon valamennyitól valamennyiig.


pl:

for(int i = 0; i < 10; i++) {} 1-tol 9-ig számol


persze while-lal minden megoldható, ami forral. Az előző ciklus while-lal:

int i = 0;

while (i < 10) { i++ }


A fenti csak az általános hazsnálati módja a for ciklusnak, ami minden nyelvben így szokás.


C szerű nyelveknél for ciklussal is minden megoldható, ami whillal.


A fenti példában láthattad, hogy 3 "paramétere" van a ciklusnak.

Egy inicializálás szerű: int i = 0

Egy feltétel: i < 10

Egy kifejezés, ami gyakorlatilag bármit csinálhat: i++


Mind a 3 külön külön elhagyható, tehát pl for-ral is csinálhatsz végtelen ciklust:

for (;;){ }


Tehát összefoglalva a for ciklust egy akkor szokták használni, ha egy intervallumban lévő számokon kell egyesével (esetleg többesével) végigmenni.

A while-t pedig akkor, ha valami bonyolultabb feltétel van.

2013. febr. 10. 11:52
Hasznos számodra ez a válasz?
 2/8 A kérdező kommentje:

Tehát ez:

for (int counter = 2; counter < szam1; counter++)

addig ismétli a ciklust, amíg a counter kisebb a számmal, vagy addig, amíg kisebb nem lesz, mint a szám (tehát a feltétel teljesülésekor fejezi be vagy addig ismétli, amíg igaz a feltétel)?

És a counter++ annyit jelent, hogy minden egyes ismétléskor növeli eggyel a counter változót?

2013. febr. 10. 18:19
 3/8 anonim ***** válasza:
A while addig fut, amíg meg nem találja a feltételben megszabott elemet, ha megtalálta, végrehajtja a benne foglaltakat és kilép, míg a for végigmegy az adott intervallumon és eltárolja az ott szedett információkat, ezek alapján hajtja végre az intervallum vizsgálata után a benne megszabott műveleteket.
2013. febr. 10. 18:35
Hasznos számodra ez a válasz?
 4/8 A kérdező kommentje:
Egy-egy példát tudnál hozni rájuk? Így "definíciónak" jó, de akkor is...
2013. febr. 11. 13:20
 5/8 anonim ***** válasza:

Tételezzük fel hogy van "F" darab autónk, ebből van ami ugyanolyan színű, van ami különböző (a típusokat nem nézzük, csak a színt).

Ha meg akarod számolni, hogy hány darab kék színű van, akkor úgy csinálod, hogy:

int kek; //itt tárolod a "kék" autók számát

for (int k = 0; k <= f; k++) /* egy deklarált számtól az összes darabszámig (F-ig) növeli a K értékét 1-el, ha lefutott a ciklus egyszer (annyiszor fut le, amennyi a 2. argumentumban van megadva (k <= f) */

{

if (szín == kék) /* ha a szín kék, belép a ciklusba */

{

kek++; /* és növeli 1-el a kek változót */

}

/*else ág nem kell, mert ha nem "kek", akkor ne csináljon semmit */

}

Tehát ez végigmegy az összes autón, és ha a szín kék, belép az if ciklusba, ha a szín például "zöld", akkor nem csinál semmit.


A while ciklussal pedig azt tudod megnézni, hogy hányadik kocsi színe kék. Itt konkrétan nem adsz meg intervallumot, ahol keressen, hanem addig megy, amíg a feltétel nem érvényesül (a szín nem egyenlő kékkel), majd belép a ciklusba, végrehajtja ami bentvan, és kilép.


while (szín != "kék")

{

/*ide valami kód, hogy mit akarsz addig csinálni (kiíratni mondjuk, hogy "ez nem kék", stb...) */

}


A while-os példa elég béna lett, de most nem telik jobb tőlem, remélem azért érthető volt.

2013. febr. 11. 19:35
Hasznos számodra ez a válasz?
 6/8 anonim ***** válasza:

Kedves Előző, a példád kicsit ferdít. C#-ban minden for és elől-, hátultesztelő ciklus átírható bármelyikbe.

(Ráadásul a while-os példa végtelen ciklus lesz ha nincs kék).


1)

int k=0;

while (k<=f)

{

if (szin==kék) {kek++;}

}


2)

for (k=0;( (szin!=kék) && (k<=f) );k++) { }

2013. febr. 11. 20:43
Hasznos számodra ez a válasz?
 7/8 A kérdező kommentje:

Tehát a végén az a K++ annyit tesz (harmadik válaszoló), hogy mindig, amikor lefutott a ciklus, növeli eggyel a K változót?

És az elhagyható?

2013. febr. 12. 13:25
 8/8 anonim ***** válasza:
Elhagyható, csak az lesz a valódi végtelen ciklus...
2013. febr. 12. 13:33
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!