Kezdőoldal » Számítástechnika » Programozás » Miért használnak egyesek for...

Miért használnak egyesek for ciklus helyett while ciklust számláláshoz?

Figyelt kérdés

Van-e esetleg ennek valami hatékonyságbeli oka, vagy csak egyszerű szimpátia?

Tehát például ehelyett: for (int i = 0; i < 20; i++) { cout << i << endl; } van, aki ezt használja: int i; while (i < 20) { cout << i << endl; i++; }



2017. máj. 27. 09:28
1 2 3 4 5 6
 1/59 anonim ***** válasza:
83%

Ha belegondolsz a for nem más mint while és fordítva.


X

while(Y) { ... Z }


for(X,Y,Z) { ... }


És persze, break-el kiléphező, és X, Y, Z-k se kötelezőek.


Tehát lehet szimpátia is.

2017. máj. 27. 10:35
Hasznos számodra ez a válasz?
 2/59 anonim ***** válasza:
12%

Mert kontárok.

A programozók nagy része bizony ilyen. Híg a szakma.

2017. máj. 27. 10:48
Hasznos számodra ez a válasz?
 3/59 anonim ***** válasza:
72%

"Bizonyos esetekben a for-hoz kellhet segédváltozó, míg a while-hoz nem."


Milyen esetekre gondolsz?


Kérdező, a kettő tök ugyan azt csinálja, nincs különbség.

Jó esetben inkább a kód többi részétől függ, hogy adott helyre mit használnak.

2017. máj. 27. 11:58
Hasznos számodra ez a válasz?
 4/59 anonim ***** válasza:
89%
Mert nincs is for ciklus a nyelvben vagy megszokták, hogy egy adott nyelven, amit hasznlank nincs,ezért mindent whileben írnak és nincs kavarodás.
2017. máj. 27. 13:05
Hasznos számodra ez a válasz?
 5/59 anonim ***** válasza:
33%

"Kérdező, a kettő tök ugyan azt csinálja, nincs különbség."


Hú de gáááz..

Na, ez az amikor vki azt sem tudja miről beszél.

2017. máj. 27. 14:20
Hasznos számodra ez a válasz?
 6/59 anonim ***** válasza:
72%

"Hú de gáááz..

Na, ez az amikor vki azt sem tudja miről beszél."


De te se mondasz semmit, csak oltogatni tudsz. Akkor gondolhatom, hogy neked sincs semmi közöd a témához.


Aki azonosnak mondja, annak félig igaza is van. Igazából 1 különbség van: for esetén a ciklus változó elveszik, ha belül definiálod.


for (int x = 0; x < 100; x++) {

... //amíg x >= 100

}


int count = 0;

while (count < 100) {

... // amíg count >= 100

... count++;

}


Ha azt nézzük a kommentár helyére amit beírunk, az mind két esetben 100x fut le. Tehát ilyen értelemben nincs különbség.

A while esetén a count érték megmarad, de a for esetén az x csak a belső {-tól }-ig blokkra érvényes.


Vagyis már az se:


int x = 0

for (; x < 100; x++) {

... //amíg x >= 100

}


Vagy így? Konkrétan egy while forma:


int x = 0

for (; x < 100;) {

... //amíg x >= 100

... x++

}


Szóval? Valaki érvelések nélkül akarja még a száját tépni, hogy okosnak tűnjön?

2017. máj. 27. 15:05
Hasznos számodra ez a válasz?
 7/59 anonim ***** válasza:
Nyelvfüggő hogy egy ciklusban definiált változó mire lokális. C# ban nem csak a ciklus blokkja hanem arra a blokkra is amiben a ciklus van.
2017. máj. 27. 15:18
Hasznos számodra ez a válasz?
 8/59 anonim ***** válasza:
0%

"Igazából 1 különbség van:"


Jajjaj..


A while ciklus adott esetben le sem fut. Mivel feltételfüggő és még a ciklusmag lefutása előtt értékeli ki a feltételt (elöltesztelő). Ugyanez for esetén helyből kizárt, az ugyanis legalább egyszer mindenképpen lefut.

De van még sok egyéb is, a programozók alapban lustaságból kerülik a while alkalmazását, holott a lehetőség sokkal több while esetében. Már mindössze négy while ciklus egymásba ágyazásával (plusz egyébségek) hihetetlenül komoly automatizmus építhető ki. Ugyanez for esetén, hmm. nevetséges eredményt szülne.

2017. máj. 27. 15:31
Hasznos számodra ez a válasz?
 9/59 anonim ***** válasza:
95%

" while ciklus adott esetben le sem fut. Mivel feltételfüggő és még a ciklusmag lefutása előtt értékeli ki a feltételt (elöltesztelő). Ugyanez for esetén helyből kizárt, az ugyanis legalább egyszer mindenképpen lefut"


Kizárt hogy ez így legyen függetlenül a nyelvtő mert hátultesztelős ciklus csak a do while a for pedig nem az.


Kipróbáltam c# Ben és nem fut le a for egyszer sem ha a benne levő feltétel egyből hamis.

2017. máj. 27. 16:07
Hasznos számodra ez a válasz?
 10/59 anonim ***** válasza:
2017. máj. 27. 16:09
Hasznos számodra ez a válasz?
1 2 3 4 5 6

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!