2016-03-30 8 views
-8

So als Anfänger Ich habe versucht, den Schalter wie folgt zu verwenden:Java Schalter nicht wie erwartet funktioniert

switch (c_a.getText()) 
    { 

     case "Customer": 
     { 
      new LoginPage().setVisible(true); 
     } 

     case "Admin": 
     { 
      new LoginPageadmin().setVisible(true); 
     } 

     default: 
     { 
      JOptionPane.showMessageDialog(this, "Please try again"); 
     } 
    } 

Obwohl das Problem hier ist, dass es auch die JOptionPane in Verzug eröffnet. Was mache ich falsch?

+3

Sie müssen zwischen Ihren Switch-Bedingungen "Pause" hinzufügen (die Standardeinstellung ist, durchzufallen). –

+1

Sie müssen eine Pause machen; – bmargulies

+1

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html – azurefrog

Antwort

1

Innerhalb einer switch Anweisung, müssen Sie break Aussagen setzen, oder auch zusätzliche Schalterblöcke ausgeführt werden. Hier ist, was es in einer Java tutorial betreffend Schalteranweisungen sagt:

Jede break-Anweisung beendet die umschließende switch-Anweisung. Der Steuerungsablauf wird mit der ersten Anweisung nach dem Schaltblock fortgesetzt. Die Break-Anweisungen sind notwendig, weil ohne sie Statements in Switch-Blöcken durchfallen. Alle Anweisungen nach der übereinstimmenden Groß-/Kleinschreibung werden unabhängig vom Ausdruck der nachfolgenden Groß-/Kleinschreibung sequenziell ausgeführt, bis eine break-Anweisung gefunden wird.

Ohne break; "fällt" Ihr Code oft durch die Schalterblöcke, wie es hier der Fall ist.

Verwandte Themen