johny7: Switch: Mehrere cases ausführen.

Moin allerseits,

ich habe ein Problem mit switch. Und zwar will ich in case 1 eine Eingabe validieren. Wenn Sie nicht valide ist, gebe ich einen Text aus. Wenn sie valide ist, will ich case 2 ausführen. Geht das, indem ich das break in meinen if-Bereich schreibe? D.h. wenn Validierung nicht fehlgeschlagen, wird das break nicht berücksichtigt und ich gehe zu case 2 über?

  
  
switch($case)  
{  
case 1:  
if ($var != valide)  
{  
echo 'Pass mir auf! <button>Trotzdem zu case 2</btton>';  
break 1;  
}  
case 2:  
echo 'Wir tun mal etwas...';  

Grüße, JN

--
ie:{ fl:( br:^ va:| ls:[ fo:| rl:? n4:? ss:| de:] js:| ch:? sh:( mo:| zu:)
http://www.johny7.de
  1. Hello,

    switch($case)
    {
    case 1:
    if ($var != valide)
    {
    echo 'Pass mir auf! <button>Trotzdem zu case 2</btton>';
    break 1;
    }
    case 2:
    echo 'Wir tun mal etwas...';

      
    Mit case legst Du den Einsprungspunkt in die Sequenzliste fest. Eine Sequenzliste ist einfach eine Aunreihung von Statements. Das bedeutet, ab dem ersten Treffer werden alle nachfolgenden Statements ausgeführt. Aussprungspunkt aus der Sequenzliste ist das erste break, auf dass man dann trifft.  
      
    Ich hoffe, das hilft Dir etwas weiter?  
      
      
      
      
      
      
    Liebe Grüße aus dem schönen Oberharz  
      
      
    Tom vom Berg  
    ![](http://selfhtml.bitworks.de/Virencheck.gif)  
      
    
    -- 
     ☻\_  
    /▌  
    / \ Nur selber lernen macht schlau  
    <http://bergpost.annerschbarrich.de>
    
  2. Hallo,

    ich habe ein Problem mit switch. Und zwar will ich in case 1 eine Eingabe validieren. Wenn Sie nicht valide ist, gebe ich einen Text aus. Wenn sie valide ist, will ich case 2 ausführen. Geht das, indem ich das break in meinen if-Bereich schreibe? D.h. wenn Validierung nicht fehlgeschlagen, wird das break nicht berücksichtigt und ich gehe zu case 2 über?

    ja, das ist möglich. Zwar nicht gerade feiner Programmierstil, aber ohne deine Umgebung zu kennen, wüsste ich auf die Schnelle auch keine bessere Alternative.

    break 1;

    Wozu die 1 hier? Ein break ohne Anzahl der "Ausbruchstiefe" bricht immer nur aus *einer* Kontrollstruktur aus, hier aus der switch-Anweisung.

    Ciao,
     Martin

    --
    Idealismus wächst mit der Entfernung zum Problem.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
  3. Code in Funktionen auslagern ist keine Lösung?

    switch($case)
    {
    case 1:
    if ($var != valide)
      echo 'Pass mir auf! <button>Trotzdem zu case 2</btton>';
    else
      TuMalWas();
    break;
    case 2:
      TuMalWas();
    break;
    }

    function TuMalWas()
    {
      echo 'Wir tun mal etwas...';
    }