Kezdőoldal » Számítástechnika » Programozás » C++-ban a while vagy a for...

C++-ban a while vagy a for ciklus fut le hamarabb azonos feltételekkel?

Figyelt kérdés
Ha ugyanazt akarjuk megvalósítani mindkettővel, akkor melyik fut le gyorsabban?
2021. febr. 7. 20:01
 1/8 anonim ***** válasza:
86%
Ugyan az a kettő, csak másképp írod le.
2021. febr. 7. 20:17
Hasznos számodra ez a válasz?
 2/8 anonim ***** válasza:
86%

Gyorsan csináltam belőle Assembly kódot: [link]


Ez alapján teljesen ugyanazt az assembly kódot generálja a fordító (legalábbis gcc esetén). Tehát nincs semmi különbség a for és a while loop között ebben az esetben.

2021. febr. 7. 20:23
Hasznos számodra ez a válasz?
 3/8 anonim ***** válasza:
78%

// Ez...

for (init; cond; inc) stms;


// ...a fordító számára ezt jelenti:

{

init;

while (cond) { stms; inc; }

}

2021. febr. 7. 23:03
Hasznos számodra ez a válasz?
 4/8 anonim válasza:

#3


Ha pl. continue utasítást is használunk lehet különbség.

Ha a while-ban az inc elé írsz continue-t, akkor inc már nem fut le, még for esetében igen.


Tehát, ez a két dolog pl. nem lesz ugyanaz:


for(int i=0; i<10; ++i)

{

if(i ==5)

continue;


cout<<i;

}


ÉS ez:


int i=0;

while(i<10)

{

if(i==5)

continue;


cout<<i;

++i;

}


Az első esetben az 5 kivételével kiírja a számokat, a második végtelen ciklusba kerül, mert sosem növeli 5 után tovább az i-t.

While esetében ilyenkor figyelni kell, hogy a continue-n kívül, előtte növelni kell az i-t, ha azt akarjuk, hogy ugyanazt csinálja.

Így:


int i=0;

while(i<10)

{

if(i==5)

{

++i;

continue;

}


cout<<i;

++i;

}


Egy ideje c++ videókat csinálok Pretoript nevű youtube csatornámra és pont ez a dolog előkerült a legutóbbi videómban: [link]


Ezért jutott eszembe.

2021. febr. 8. 20:55
Hasznos számodra ez a válasz?
 5/8 anonim ***** válasza:

#4: Igaz, de a for/continue esetben nem a for a különleges (az pont ugyanúgy működik, ahogy leírtam), hanem a continue, ami "tudja", hogy milyen ugrási cím tartozik hozzá, vagyis az általam inc-nek nevezett utasítás címe.

While-on belül kicsit másképp működik a continue, ott a while blokk elejére ugrik. Én sem szó szerint értettem, hogy először csinál egy while() kódot és utána fordítja, hanem hogy tárgykód szintjén egyenértékű a kettő. A continue kódja egy másik történet.

2021. febr. 10. 14:07
Hasznos számodra ez a válasz?
 6/8 A kérdező kommentje:
Köszönöm a válaszokat, hasznosak voltak.
2021. febr. 10. 15:49
 7/8 A kérdező kommentje:
Akkor érdemes mindig a for-t használni, amennyiben azzal is meg lehet oldani a feladatot.
2021. febr. 10. 15:49
 8/8 anonim ***** válasza:
Igen, nyugodtan lehet for-t használni, ahol logikailag használható.
2021. febr. 10. 16:50
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, 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!