Hirdetés

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

  • Jester01

    veterán

    válasz Karma #1477 üzenetére

    Más konvenciók meg pont azt mondják, hogy nyugodtan használj annyi returnt amennyit akarsz, az átláthatóság miatt :DDD Ugyanis adott esetben sok if/else ág lenne illetve segédváltozók és/vagy ciklus lefutás után a feltétel újratesztelése is szükséges lehet.

    int find(int needle, int* haystack, int size)
    {
    int result = -1;
    if (haystack == NULL)
    {
    fputs("haystack NULL", stderr);
    } else {
    for(int i = 0; i < size; i++)
    {
    if (haystack[i] == needle)
    {
    result = i;
    break;
    }
    }
    }
    return result;
    }

    -vagy-

    int find(int needle, int* haystack, int size)
    {
    if (haystack == NULL)
    {
    fputs("haystack NULL", stderr);
    return -1;
    }
    for(int i = 0; i < size; i++)
    {
    if (haystack[i] == needle)
    {
    return i;
    }
    }
    return -1;
    }

    Az első esetben hiába van 1 return a függvény végén, ahhoz, hogy megtudd mit ad vissza ígyis-úgyis végig kell nézni a függvényt, hogy hol lesz az a változó beállítva. Akkor meg pont ugyanolyan egyszerű a return utasításokat megkeresni. Ha pedig mondjuk két ciklus van egymásbaágyazva akkor még több macera kijutni belőlük (mivel ugye goto-t sem használunk :N )

    [ Szerkesztve ]

    Jester

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