2017-10-03 1 views
0

Ich brauche Hilfe bei den Hausaufgaben. Ich brauche ein Programm zu schreiben, wenn else-Anweisungen anstelle der switch-Anweisung gezeigt verwenden:If-Else Programm für Tage der Woche

switch (day) { 
case 1: case 2: case 3: case 4: 
    message = "regular workday"; 
    break; 
case 6: case 7: 
    message = "weekend"; 
    break; 
default: 
    message = "tgif"; 
} 

Ich brauche den Benutzer Schlüssel in den Tag der Woche und zeigt dann den entsprechenden Ausgang zu ermöglichen. Ich muss auch sicherstellen, dass es die Eingabe für eine gültige Nummer (1-7) testet. Der Benutzer muss in der Lage sein, so viele verschiedene Tage einzugeben, wie er möchte, und einen Wert (-1) zu haben, der das Programm bei der Eingabe beendet.

Ich habe dies so weit:

public class Question1 { 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     Scanner input = new Scanner(System.in); 
     int day; 

     do { 
      System.out.println("What day of the week do you want to enter? When finished, please enter \"-1\"."); 
      day = input.nextInt(); //User input assigned to variable day 

      if (day == 1 || day == 2 || day == 3 || day == 4) { 
       System.out.println("Regular workday"); 
      } 

      else if (day == 6 || day == 7) { 
       System.out.println("Weekend"); 
      } 

      else if (day == 5) { 
       System.out.println("TGIF"); 
      } 

      else { 
       System.out.println("Invalid Month. Please try again or enter \"-1\" when finished."); 
      } 
     } //end do 
     while (day != -1); //Loops when input meets the criteria 
    } 

} 

PROBLEM: Das Problem, das ich habe, ist, dass, wenn ich -1 eingeben, das Programm zu beenden, damit sie als sonst nimmt und druckt die else-Anweisung, wenn ich einfach möchte nur, dass das Programm endet.

+0

Also, was ist los mit dem Code, den Sie haben? Erhalten Sie einen Fehler? Falsche Ausgabe? – Blorgbeard

+0

Ja, sag uns was falsch ist. Fixiere auch den Teil, der "Ungültiger Monat" sagt. :) –

+0

Sie haben das Problem mit dem Code, den Sie gepostet haben, nicht erklärt oder eine Frage gestellt. Bitte [Bearbeiten], um diese Dinge zu beheben. Vielen Dank. –

Antwort

1

Versuchen Sie, die Leitung else { durch else if (day != -1) { zu ersetzen. Dies löst die Verzweigung für eine Zahl aus, die die vorherigen Bedingungen nicht erfüllt hat, oder -1

0

Sie können Ihre Eingabe im Else-Block erneut testen und false zurückgeben und/oder zu quitProgram-part springen - bevor die Fehlermeldung angezeigt wird.