if else vs. Switch case

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

  • if else vs. Switch case

    Hallo zusammen

    Ich arbeite meist mit if else anstelle von Switch case, nun bin ich aber an einem Problem angelangt wo ich mehr als nur 3 Abfragen ( if else if else) machen muss.
    Ansich kein Problem mit switch wäre da nicht ein ungleichnung zu prüfen.

    Sprich:
    PHP-Code:
    if ($i == 0) {
       echo 
    "i ist gleich 0";
    } elseif (
    $i == 1) {
       echo 
    "i ist gleich 1";
    } elseif (
    $i == 2) {
       echo 
    "i ist gleich 2";
    }

    switch (
    $i) {
    case 
    0:
       echo 
    "i ist gleich 0";
       break;
    case 
    1:
       echo 
    "i ist gleich 1";
       break;
    case 
    2:
       echo 
    "i ist gleich 2";
       break;

    Sogeht es, nur wie mache ich sowas?
    PHP-Code:
    if ($i == 0) {
       echo 
    "i ist gleich 0";
    } elseif (
    $i == 1) {
       echo 
    "i ist gleich 1";
    } elseif (
    $i != 2) {
       echo 
    "i ist [B]ungleich[/B]  2";

    Habe im Manuel nichts darüber gefunden, dort wird lediglich ausführlich die gleichung mit switch beschrieben.

    Wäre um einen kleinen Tip froh.
    Danke René

  • #2
    Re: if else vs. Switch case

    warum nutzt du dann nicht den default-zweig von switch?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      warum machst du nicht einfach

      echo "i ist".$i;

      falls das dein problem ist ...

      sonst halt switch($i) {

      case 0:
      //
      break;

      case 1:
      //
      break;

      default :
      //

      gruss
      iglo

      Kommentar


      • #4
        Meinst Du so?
        PHP-Code:
        switch ($i == '0') {
           echo 
        "i ist gleich 0";
           break;
        }
        switch (
        $i == '1') {
           echo 
        "i ist gleich 0";
           break;
        }
        switch (
        $i != '2') {
           echo 
        "i ist ungleich 0";
           break;

        Kommentar


        • #5
          nein ...

          schau dir einfach mal die dokumentation an ...

          und vor allem die beispiele dazu

          Kommentar


          • #6
            Original geschrieben von rönee
            Meinst Du so?
            um himmels willen, natürlich nicht.

            das läuft doch auf's gleich hinaus, wie für jeden fall eine einzelne if-abfrage zu machen - sieht nur noch ein bisschen dämlicher aus.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Ein bisschen ist gut ... !
              carpe noctem

              [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
              [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

              Kommentar


              • #8
                Nun, ich bleibe bei if else, habe es neu verschachtelt nun ist der Zweck erfüllt.

                @wahsaga
                Ja, da gebe ich Dir recht sieht absolut doof aus, nur wäre so die Möglichkeit von mehr als 3 abfragen.

                @kapitaeniglo
                Ich glaube Du hast mich nicht recht verstenden. Ich brauche keine Ausgabe sondern vier verschiedene un-gleichungen.

                Ich verwende Switch also in Zukunft wieder nur mit gleichungen.

                ich dache es gäbe etwas einfache, wie zum Beispiel das man die jeweiligen Case's mit einem == und/oder != bestücken kann.

                Kommentar


                • #9
                  ich verstehe immer noch nicht, warum es nicht mit switch und default: geht?
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • #10
                    Um ehrlich zu sein; kann ich mit default in diesem Zusammenhang nicht viel anfangen. Ein Beispiel mit einer Gleichungen und einer Ungleichungen im selben Switch wäre schon nicht schlecht. Dann würde ich auch sehen wie und wo Default funtzt!

                    Sorry

                    Kommentar


                    • #11
                      PHP-Code:

                      switch($wert){
                      case 
                      2:
                      echo 
                      'ist 2';
                      break;
                      case 
                      1:
                      echo 
                      'ist 1';
                      break;
                      default:
                      echo 
                      'ist weder 1 noch 2';
                      break;
                      }


                      //oder

                      switch($wert){
                      case 
                      3:
                      echo 
                      'ist 3';
                      break;
                      case 
                      2:
                      echo 
                      'ist 2';
                      break;
                      case 
                      1:
                      default:
                      echo 
                      'ist weder 3 noch 2, es ist '.$wert;
                      break;

                      mfg
                      marc75

                      <Platz für anderes>

                      Kommentar


                      • #12
                        Und wie realisier ich folgendes?

                        PHP-Code:
                        if ($feld1 == "" and $fled2 == "")
                        {
                        echo
                        "fehler 1";
                        }
                        else if (
                        $feld1 != "" and $Feld2 != "")
                        {
                        echo
                        "fehler 2";
                        }
                        else (
                        $feld1 != "" and $Feld2 == "")
                        {
                        echo
                        "fehler 3";

                        und hier sollte ich noch ein zusätzliches else if an hängen können
                        PHP-Code:
                        else if ($feld1 == "" and $Feld2 != "")
                        {
                        echo
                        "fehler 4";

                        Kommentar


                        • #13
                          Original geschrieben von rönee
                          Und wie realisier ich folgendes?
                          da würde ich erst mal die logik überdenken.

                          warum vier verschiedene fehlermeldungen, beim prüfen von nur zwei feldern?

                          und insbesondere
                          if ($feld1 != "" and $Feld2 != "")
                          - dann einen fehler ausgeben?

                          worauf willst du denn eigentlich überhaupt hinaus?
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            man kann switch auch wunderschön missbrauchen ...

                            PHP-Code:
                            switch ( true ) {
                               case 
                            $a==1: {
                                  
                            // 
                               
                            }
                               case 
                            $b==15: {
                                  
                            // 
                               
                            }
                               case 
                            $a<$b && func_keineahnung($a)==: {
                                  
                            // 
                               
                            }
                               case 
                            $x=='wasweissich': {
                                  
                            // 
                               
                            }
                               default: {
                                  
                            // alles andere
                               
                            }

                            TBT

                            Die zwei wichtigsten Regeln für eine berufliche Karriere:
                            1. Verrate niemals alles was du weißt!


                            PHP 2 AllPatrizier II Browsergame

                            Kommentar


                            • #15
                              Wenn im Form die Felder 1 und 2 nicht abgefüllt werden .

                              PHP-Code:
                              if ($feld1 == "" and $fled2 == "")
                              {
                              echo
                              "bitte ein Felder ausfüllen";

                              Wenn im Form die Felder 1 und 2 abgefüllt werden .

                              PHP-Code:
                              if ($feld1 != "" and $fled2 != "")
                              {
                              echo
                              "bitte nicht beide Felder ausfüllen";

                              Wenn im Form Feld1 der Name bereits in der DB ist.

                              PHP-Code:
                              if ($feld1 == "" and $fled2 != "")
                              {
                              $abfrage_verz "SELECT * from $tab where name ='$kat_neu'";
                                       
                              $result_verz mysql_query($abfrage_verz,$conn);
                                       while (
                              $row mysql_fetch_array ($result_verz)) 
                                          {
                                          
                              $kat_namen $row["cat_name"];
                                          }
                              #Prüfen ob die Kategorie in der DB schon vorhanden ist
                                              
                              if (isset($kat_namen))
                                              {
                              echo
                              "der Name ist bereits vorhanden";
                                                              }

                              Und wenn keine der Bedingungn eintreten
                              käme else mit der Funktion

                              Kommentar

                              Lädt...
                              X