2017-03-29 1 views
1

Okay, also funktioniert mein Code, aber wenn der Benutzer richtig "blau" erraten, druckt die Zeile "Sie haben die richtige Farbe!". Dann sollte der Code enden. Es bringt jedoch eine andere k.next(); Linie. Wie kann ich das verhindern? Wenn Sie nicht verstehen, hier ist der Code. nur brechen aus der Schleife mit dem "break" Anweisung wie folgtJava Abschlussanweisungen

import java.util.Scanner; 
 

 
public class BEassignment11 
 
{ 
 
    public static void main (String [] args) 
 
    { 
 
    Scanner k = new Scanner (System.in); 
 
    String color; 
 
    String again; 
 
    
 
    do 
 
    { 
 
     
 
     System.out.println ("Try to guess my favorite color!"); 
 
     color = k.next(); 
 
     
 
     if (color.equalsIgnoreCase ("blue")) 
 
     {  
 
     System.out.println ("You got the right color!"); 
 
     
 
     } 
 
     
 
     else 
 
     
 
     System.out.println ("That is not the right color. Would you like to try again? Yes/No"); 
 
     again = k.next(); 
 
    } 
 
    while (again.equalsIgnoreCase ("yes")); 
 
    
 
    } 
 
}

+0

brechen Sie einfach aus der loop.by übrigens konsistent mit Ihrem '{}' in if-else – Ramanlfc

+1

Mögliche Duplikate von [Pause DO While Loop Java?] (Http://StackOverflow.com/questions/7370174/ break-do-while-loop-java) – Satpal

Antwort

0

Sie können:

if (color.equalsIgnoreCase ("blue")){  
    System.out.println ("You got the right color!"); 
    break; 
} 
+1

Vielen Dank! Arbeitete perfekt. –

0

Sie break folgende System.out.println ("You got the right color!"); innerhalb if Anweisung bei do..while Schleife verwenden können.

oder eine Variable vor do..while Schleife definieren, zum Beispiel var boolFlag = false Setvariable zu true innerhalb if Anweisung boolFlag = true umfassen || boolFlag === true innerhalb while Zustand.

0

System.out.println.... ist Teil der Else-Klausel. Sie scheinen überrascht zu sein, dass die Linie

noch ausgeführt wird, auch wenn der Benutzer die Farbe korrekt erhält. Ich schlage vor, Sie die anderen Code ändern auf die folgenden:

if (color.equalsIgnoreCase ("blue")) 
     {  
     System.out.println ("You got the right color!"); 
     again = "No"; 
     } 
    else 
    { 
     System.out.println ("That is not the right color. Would you like to try again? Yes/No"); 
     again = k.next(); 
    } 

, die automatisch dem Programm sagen, wird nicht erneut ausgeführt werden, wenn der Benutzer richtig geraten und wird nur die Benutzer Antwort lesen wieder versuchen, wenn sie nicht richtig beantworten.