Hirdetés

Keresés

Új hozzászólás Aktív témák

  • EQMontoya
    veterán

    Én az ilyeneket mindig egy ++i-vel oldottam meg.:) Amíg nem találok (csinálok) olyan példát, amiben tényleg hasznos lesz a continue (értsd. lerövidíti a kódot), addig csak olyan felvágós utasításként fogom kezelni. :DDD Felvágós, mert szerintem kevesebben értik vagy később tanulják meg a használatát (mint most én is) és sokszor feleslegesen használják, mint pl. most te is a ++i helyett. ;]
    Ráadásul a ++i szerintem kevesebb utasításból áll, mint a continue, mármint asm-re lefordítva.
    Bár lehet mindjárt visszavonom az egészet, ahogy jobban nézegetem a kódodat. :DDD
    Vissza is vontam, mert continue nélkül meghívná a függvényt a negatív számokra is, azaz kimaradna a tesztelés. :)

    A C++-t is elkezdtem már tanulgatni, de még nem jöttem rá, hogy mitől jobb a C-nél, mit lehet C++-ban megoldani amit C-ben nem, vagy csak jóval bonyolultabban...

    Van, amikor nincs ++i. :)
    Pl, c++.ban:
    for(const auto& i : my_list) { ... }

    A continue-ban azt szeretjük, hogy az minden nyelven ugyanúgy működik.
    És hidd el, azt mindenki érti, ha pedig a ciklus közepén a ciklusváltozóhoz nyúlsz, az:
    -Sokkal kevéssé érthető
    -Jobb helyen arconvágnak érte, mert nagyon veszélyes.

    Pl.
    for(int i = 0; i < valami ; ++i)
    {
    if(zöld(tömb[i]) && pöttyös(tömb[i])) continue;
    if(sarga(tömb[i]) && !csikos(tömb[i])) continue;
    //do something here...
    }

    Sok sikert ++i-vel. :)

  • ToMmY_hun
    senior tag

    Én az ilyeneket mindig egy ++i-vel oldottam meg.:) Amíg nem találok (csinálok) olyan példát, amiben tényleg hasznos lesz a continue (értsd. lerövidíti a kódot), addig csak olyan felvágós utasításként fogom kezelni. :DDD Felvágós, mert szerintem kevesebben értik vagy később tanulják meg a használatát (mint most én is) és sokszor feleslegesen használják, mint pl. most te is a ++i helyett. ;]
    Ráadásul a ++i szerintem kevesebb utasításból áll, mint a continue, mármint asm-re lefordítva.
    Bár lehet mindjárt visszavonom az egészet, ahogy jobban nézegetem a kódodat. :DDD
    Vissza is vontam, mert continue nélkül meghívná a függvényt a negatív számokra is, azaz kimaradna a tesztelés. :)

    A C++-t is elkezdtem már tanulgatni, de még nem jöttem rá, hogy mitől jobb a C-nél, mit lehet C++-ban megoldani amit C-ben nem, vagy csak jóval bonyolultabban...

    Kereső algoritmusokban a keresett elem megtalálásakor hasznos lehet a continue. Olyankor is, amikor előfeltételként vizsgálod a ciklusmagban egy számításigényes művelet elvégzésének szükségességét. (Erre írt példát EQMontoya).

    A mikrokontrollerek programozásához pedig nagyon kevés, speciális esetben van szükség C++ használatra. Komplexebb problémák megoldása során találkozhatsz vele, úgy mint például orvostechnikai berendezések, robotika stb. A "mitől job" kifejezés pedig nem a legcélszerűbb megfogalmazási módja a kérdésnek, nem jobb és nem is rosszabb, szimplán más a létezésének célja. :)

  • dobragab
    addikt

    Én az ilyeneket mindig egy ++i-vel oldottam meg.:) Amíg nem találok (csinálok) olyan példát, amiben tényleg hasznos lesz a continue (értsd. lerövidíti a kódot), addig csak olyan felvágós utasításként fogom kezelni. :DDD Felvágós, mert szerintem kevesebben értik vagy később tanulják meg a használatát (mint most én is) és sokszor feleslegesen használják, mint pl. most te is a ++i helyett. ;]
    Ráadásul a ++i szerintem kevesebb utasításból áll, mint a continue, mármint asm-re lefordítva.
    Bár lehet mindjárt visszavonom az egészet, ahogy jobban nézegetem a kódodat. :DDD
    Vissza is vontam, mert continue nélkül meghívná a függvényt a negatív számokra is, azaz kimaradna a tesztelés. :)

    A C++-t is elkezdtem már tanulgatni, de még nem jöttem rá, hogy mitől jobb a C-nél, mit lehet C++-ban megoldani amit C-ben nem, vagy csak jóval bonyolultabban...

    ++i tök mást csinál. continue igazából arra való, hogy ne legyen annyi egymásba ágyazás. A fenti kód így írható át:

    void print_primes(int * primes, int lenght)
    {
    for(int i = 0; i < lenght; ++i)
    {
    if(primes[i]>=2)
    {
    /* és egy rakás random utasítás */
    if(is_prime(primes[i]))
    printf("%d\n", primes[i]);
    /* meg itt is sok utasítás */
    }
    }
    }

    A bitb*szogatás nem az én területem, de tudomásom szerint a continue asm-ben 1 db jump lesz, ugyanúgy, ahogy az if is.

    C++ C-hez képest nagyon sok mindent tud, amit neked első körben érdemes megnézned, az az objektumorientált tervezés.

Új hozzászólás Aktív témák