Ankündigung

Einklappen
Keine Ankündigung bisher.

Testen, ob Zahl gerade oder ungerade

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Testen, ob Zahl gerade oder ungerade

    Huhu Leute,

    wollte ein Script machen, dass überprüft, ob eine Zahl gerade oder ungerade ist.

    Code:
    <? echo "Gerade oder ungerade?";
    $i=0; 
    while ($i<11 && $i%2 = 0) {
    echo "<br />" . $i;
    $i++ ; }
    ?>
    So sieht es aus, die Fehlermeldung, die ich bekomme lautet:
    Parse error: syntax error, unexpected '=' in C:\xampp\htdocs\zahlen-testen.php on line 3
    Wäre echt schön, wenn mir jemand weiterhelfen könnte, bin leider noch ein totaler Anfänger und möchte mich deshalb schon einmal entschuldigen, falls es offensichtlich ist ^^

    MfG Neon

  • #2
    PHP-Code:
    <?php

    function GeradeZahl($Zahl)
    {
        if(
    $Zahl%!= 0)
        {
            return 
    false;
        }
        else
        {
            return 
    true;
        }
    }

    echo 
    GeradeZahl(5); //ungerade
    echo GeradeZahl(214); //gerade
    echo GeradeZahl(-59); //ungerade
    echo GeradeZahl(0); //gerade

    ?>

    Kommentar


    • #3
      $i%2 = 0

      dieses = ist eine Zuweisung

      du willst das ganze aber vergleichen und der vergleichsoperator ist ==
      steht doch aber auch alles in der fehlermeldung

      PHP-Code:
      <? echo "Gerade oder ungerade?";
      $i=0; 
      while ($i<11 && $i%2 == 0) {
      echo "<br />" . $i;
      $i++ ; }
      ?>

      Kommentar


      • #4
        Das bricht aber bei 1 ab, weil die while-Bedingung nicht mehr erfüllt wird.
        PHP-Code:
        <?php
        echo "Gerade oder ungerade?<br />\n";
        $i=0
        while (
        $i<11) {
         echo 
        $i . ($i%== 'gerade':'ungerade') . "<br />\n";
         
        $i++ ;
        }
        ?>

        Kommentar


        • #5
          Zitat von Neon Beitrag anzeigen
          wollte ein Script machen, dass überprüft, ob eine Zahl gerade oder
          jep David, aber im grunde leigen wir beide falsch wenn man seine Aufgabe betrachtet (jaja wenn man zu schnell liest )

          also ist while da überflüssig

          PHP-Code:
           <?php
          echo "Gerade oder ungerade?<br />\n";
          $i=0
          if ( 
          $i == )
           echo 
          $i " ist gerade";
           else echo 
          $i " ist ungerade";
          ?>

          Kommentar


          • #6
            Zitat von keinplanvonnix Beitrag anzeigen
            also ist while da überflüssig
            Da überprüfst du ja gerade mal die Null. Und um zu wissen ob die gerade oder ungerade ist, brauche ich kein Script.
            Gruss
            L

            Kommentar


            • #7
              Zitat von lazydog Beitrag anzeigen
              Da überprüfst du ja gerade mal die Null. Und um zu wissen ob die gerade oder ungerade ist, brauche ich kein Script.
              ich auch nicht aber dann kannst du ja auch gleich sagen dass du überhaupt kein script brauchst um zu überprüfen ob irgendeine zahl gerade oder ungerade ist

              Kommentar


              • #8
                PHP-Code:
                <?php
                $i
                =122;
                $i=base_convert($i,10,2);
                echo (
                $i{strlen($i)-1}==1)?"uneven":"even";
                ?>
                wobei das die wohl unsinnigste art und weise sein dürfte wie man das überprüfen kann

                Kommentar


                • #9
                  Zitat von pacey Beitrag anzeigen
                  PHP-Code:
                  <?php
                  $i
                  =122;
                  $i=base_convert($i,10,2);
                  echo (
                  $i{strlen($i)-1}==1)?"uneven":"even";
                  ?>
                  wobei das die wohl unsinnigste art und weise sein dürfte wie man das überprüfen kann
                  Auf was für Ideen die Leute kommen xD

                  Kommentar


                  • #10
                    Aber die grundlegende Idee ist gut. Eigentlich brauchst man bei %2 nur das niederwertigste Bit zu prüfen. Das geht schneller als Modulo.
                    PHP-Code:
                    for($i=0$i<20$i++)
                    {
                      echo 
                    $i' ' . (($i&1)==='even':'odd') . "<br />\n";

                    Kommentar


                    • #11
                      Wichtig ist übrigens auch, dass === eine höhere Präzedenz hat als &

                      Das bedeutet (sieht man schön an Davids Beispiel), dass $i&1 geklammert werden muss.

                      Gruß pacey

                      Kommentar

                      Lädt...
                      X