Unterscheidung char, integer in der if schleife..?



  • Quatsch mit Soße. Guter Quellcode ist leicht verständlicher Quellcode, nicht irgendein kryptischer Zeichensalat. Nur weil man in C programmieren kann wie ein Roboter auf Speed, heißt das nicht, daß man dies tun sollte! Diese Hacker-Ethik ist seit 30 Jahren out.



  • helfer1ein schrieb:

    Guter Quellcode ist leicht verständlicher Quellcode, nicht irgendein kryptischer Zeichensalat.

    richtig, aber völlig überflüssiger quellcode ist schlechter quellcode. die realitätsfernen freaks aus dem c++-forum hätten die frage des op vielleicht mit klassen, iteratoren, stringstream und schön viel std:: darin gelöst (ausser volkard, er ist der einzige mit weitblick, der sich da rumtreibt). aber wie's so treffend heisst: 'die dümmsten programmierer schreiben die dicksten programme'.
    🙂



  • helfer1ein schrieb:

    Guter Quellcode ist leicht verständlicher Quellcode, nicht irgendein kryptischer Zeichensalat.

    a)

    bool charPruefen(char c) {
      if(c > 47 && c < 58) {
        return true;
      }
      return false;
    }
    

    b)

    bool pruefeChar(char c) {
      return c > 47 && x < 58;
    }
    

    Alles was in b) steht, findet man auch in a). Wie also kann b) kryptisch sein, a) aber nicht? Erklär mal bitte 🙂



  • ~fricky schrieb:

    die realitätsfernen freaks aus dem c++-forum hätten die frage des op vielleicht mit klassen, iteratoren, stringstream und schön viel std:: darin gelöst (ausser volkard, er ist der einzige mit weitblick, der sich da rumtreibt). aber wie's so treffend heisst: 'die dümmsten programmierer schreiben die dicksten programme'.

    oh mann. man darf ja ruhig eine programmiersprache nicht mögen und das auch sagen, aber was sollen denn dieses ständige sinn-, grund- und hirnlose bashing, die provokationen und beleidigungen bringen? scheint ja schon zwanghaft zu sein bei dir.
    es wissen alle über deine meinung bescheid, keinen interessierts, also klappe zu. bitte.



  • ʎʞ& schrieb:

    ~fricky schrieb:

    die realitätsfernen freaks aus dem c++-forum hätten die frage des op vielleicht mit klassen, iteratoren, stringstream und schön viel std:: darin gelöst (ausser volkard, er ist der einzige mit weitblick, der sich da rumtreibt). aber wie's so treffend heisst: 'die dümmsten programmierer schreiben die dicksten programme'.

    oh mann. man darf ja ruhig eine programmiersprache nicht mögen und das auch sagen, aber was sollen denn dieses ständige sinn-, grund- und hirnlose bashing, die provokationen und beleidigungen bringen?

    ok, tut mir leid. ich habe überreagiert. das lag daran, dass ich vorhin im c++ forum zwei haarsträubende threads gelesen habe. ich sollte besser einen grossen bogen um das c++ unterforum machen.
    🙂



  • a)

    bool charPruefen(char c) {
      if(c > 47 && c < 58) {
        return true;
      }
      return false;
    }
    

    b)

    bool pruefeChar(char c) {
      return c > 47 && c < 58;
    }
    

    in den ersten beiden oder drei jahren bevorzugt man a). später wechselt man langsam zu b).
    es ist grundsätzlich egal, was man hier schreibt, denn die profis erkennen beide muster auf anhieb und wer's noch nicht tut, muss das lernen.

    als anregung hätte ich folgende sachen:
    return c > 47 && c < 58;
    wird zu
    return 47 < c && c < 58;
    damit stehts eher da wie im mathebuch und ist als intervall leichter zu erkennen.

    wird zu
    return 48 <= c && c <= 57;
    geschlossene sind noch leichter, weil ich so denke c liegt zwischen 48 und 57 und wenn man nix dazu sagt, sind die grenzen drin.

    (ok, halboffen ist auch nicht schlecht im C-umfeld).

    wird zu
    return '0' <= c && c <= '9';
    denn der compiler hat ja ne ascii-tabelle eingebaut. so sehe ich irgendwie gleich, was gemeint ist. sah ich zwar auch vorher, aber jetzt sehe ich es noch gleicher.



  • Ich hätte isdigit trotzdem noch gleicher verstanden.



  • helfer1ein schrieb:

    Diese Hacker-Ethik ist seit 30 Jahren out.

    jaja, leider, sieht man an der Unmenge unausgeriefter Software, wie z.b. Spiele und so.

    ʎʞ& schrieb:

    scheint ja schon zwanghaft zu sein bei dir.
    es wissen alle über deine meinung bescheid, keinen interessierts, also klappe zu. bitte.

    genauso zwanghaft wie alle 'auf-frickies-pinkate-c++-bashing-Komentare' fallende Antworten, die dumm genug sind, darauf zu reagieren 😉

    @volkard: du meinst eher return '0' <= c && c <= '9'; , '\0' == 0 😉



  • supertux schrieb:

    @volkard: du meinst eher return '0' <= c && c <= '9'; , '\0' == 0 😉

    jup, klar. ich korrigiere es gleich auch mal oben.



  • volkard schrieb:

    als anregung hätte ich folgende sachen:
    return c > 47 && c < 58;
    wird zu
    return 47 < c && c < 58;
    damit stehts eher da wie im mathebuch und ist als intervall leichter zu erkennen.

    im mathebuch würde stehen: 47 < c < 58, aber in C sinds zwei getrennte vergleiche. daher finde ich's besser, wenn man das c immer links oder rechts hat.
    ach ja, zur besseren lesbarkeit kann man auch klammern um den ganzen ausdruck machen.
    🙂



  • Und das tollste: isdigit würde c nur einmal bewerten.

    scheint ja schon zwanghaft zu sein bei dir.
    es wissen alle über deine meinung bescheid, keinen interessierts, also klappe zu. bitte.

    Also wirklich nett finde das nicht.



  • ...ich (der seit neuestem die Worte verschluckt)



  • flamer schrieb:

    scheint ja schon zwanghaft zu sein bei dir.
    es wissen alle über deine meinung bescheid, keinen interessierts, also klappe zu. bitte.

    Also wirklich nett finde das nicht.

    aber gerechtfertigt. mein posting war auch nicht nett. ich stand gewissermassen noch unter schock.
    🙂


Anmelden zum Antworten