Seltsamer If-Befehl



  • Hi Leute!
    Joa, mein erster Beitrag heute. xD Dachte nicht, dass es so schnell sein wird.

    Also wir haben gerade mit C++ angefangen und von den bisherigen Aufgaben komme ich gut klar. Bei einer Aufgabe jedoch steht in einem If-Befehl das folgende:

    if(a % 2)
    {
     .
     .
     .
    

    Meine Frage ist nun, was dieser if-Befehl macht. Also ich weiß, dass es einen Rest ausrechnet, aber es wird doch mit keinem Wert verglichen oder so. Es steht einfach nur ein Ergebnis da, ohne eine Bedingung, dass, wenn es zutrifft, dass es dann ausgeführt werden soll.
    Per Suche hatte ich auch kaum Chancen. ^^' Weil wie soll ich nach so einem Problemchen suchen? xD

    Vielen Dank schon einmal im voraus!

    MFG Majin_Clodan



  • Bei einem if-Befehl wird getestet ob der Ausdruck wahr oder falsch ist.

    0 wird als falsch gewertet,
    und alles andere als true.

    der if block wird also dann ausgeführt wenn a ungerade ist (dasheißt a % 2 lässt einen rest)



  • Das ist eine Eigenart von C/C++. Das Integer Werte auch implizit als boolsche Werte verwendet werden können. 0 = false , alles andere = true.

    Im übrigen ist if kein Befehl, sondern ein statement/Anweisung.



  • Bei einer Division durch 2, kann bei dieser Rechnung nur der Rest 0 oder 1 entstehen. 0 wird als "false" angesehen und 1 als "true". Eig. könnte da genauso gut folgenedes stehen:

    if(true or false)
    

    Gibt nicht wirklich Sinn glaube ich.



  • Hallo

    FreakY<3Cpp schrieb:

    Bei einer Division durch 2, kann bei dieser Rechnung nur der Rest 0 oder 1 entstehen. 0 wird als "false" angesehen und 1 als "true". Eig. könnte da genauso gut folgenedes stehen:

    if(true or false)
    

    Gibt nicht wirklich Sinn glaube ich.

    Du solltest schnell noch einmal lesen, was oben steht und dann deine Antwort editieren 😉

    chrische





  • chrische5 schrieb:

    Hallo
    Du solltest schnell noch einmal lesen, was oben steht und dann deine Antwort editieren 😉
    chrische

    Und was soll ich editieren ?..



  • Er wollte wahrscheinlich nur drauf anspielen, dass drakon vor dir so ziemlich die selbe Antwort gegeben hat. Ist aber auch nicht schlimm wegen der Wiederholung, wenn du den Beitrag stehen lässt. 😉



  • Nexus schrieb:

    Er wollte wahrscheinlich nur drauf anspielen, dass drakon vor dir so ziemlich die selbe Antwort gegeben hat. Ist aber auch nicht schlimm wegen der Wiederholung, wenn du den Beitrag stehen lässt. 😉

    Ich glaube nicht, dass er das gemeint hat. Aber ich verstehe FreakY<3Cpp's Beitrag eh nicht. Was soll den da oben sinnlos sein?! Das kann durchaus mal benötig werden..



  • Ah sorry, ich habe FreakY<3Cpp auch falsch interpretiert. Ich habe das

    if (true || false)
    

    gar nicht genauer betrachtet...


Anmelden zum Antworten