2016-04-10 5 views
0

i eine Frage für einen bedsize stellen wollen und während die Antwort nicht, was ich wählen, wird es sein, ich will, dass der Benutzer gefragt wird wiederIch möchte ein statment in Java wiederholen

import java zu beantworten. util.Scanner;

public static void main(String[] args) { 
    String newBedType ; 
    Scanner sc1 = new Scanner(System.in) ; 
    System.out.println("you want a single bed or doublebed? ") ; 
    newBedType = sc1.next() ; 

    while (newBedType != "single" + "doublebed") { 
    System.out.println("please choose againe the bed size: "); 
    newBedType = sc1.next() ; 
    switch (newBedType) { 
    case "single" : System.out.println("i see you like sleeping alone"); 
    break ; 
    case "doublebed" : System.out.println("got company ;) "); 
    break ; 
    } 

    }    

} 

}

der Code irgendwie funktioniert es die Fälle zeigt, wenn ich die richtige Zeichenfolge schreiben, aber es wird mich auch weiterhin für immer fragen .....

ich starrte nur Java lernen so sein einfach auf mich Ich weiß, es ist eine dumme Frage, aber nach stunden des Versuchens und Suchens hier (obwohl ich in Python gefunden, aber nicht wissen, wie man es in Java "übersetzt") Ich kann es nicht herausfinden ... Dank an jeden bereit zu Hilfe :)

Antwort

0

Ihr Problem ist w mit der Zeile:

while (newBedType != "single" + "doublebed") 

Dies tut nicht, was Sie denken, dass es tut. Sie vergleichen die Variable newBedType mit der Zeichenfolge "singledoubled", der Additionsoperator verkettet diese beiden Zeichenfolgen. Sie wollen die Zeile:

while (!newBedType.equals("single") && !newBedType.equals("doublebed")) 

Beachten Sie die Verwendung der .equals() -Methode als String-Vergleiche in Java nicht handeln wie mit dem == erwartet oder = Operatoren!.

+1

Dies wäre sogar unwichtig, wenn er die while-Schleife beschriftete und den Vergleich im Switch erneut verwendete, um zu dieser Marke zu springen. –