2016-07-21 3 views
1

Ich habe versucht, dies herauszufinden: wie Sie sicherstellen, dass das Programm weiterläuft, bis der richtige Wert eingegeben und nicht beendet wird, wenn ein falscher Wert eingegeben wird.Wie gehe ich zu einer Zeile, wenn ein falscher Wert eingegeben wird?

Code:

package class3; 

import java.util.Scanner; 

public class dayName { 

public static void main(String args[]){ 

    Scanner input = new Scanner(System.in); 
    System.out.println("\nEnter any of the following values from 0 to 7 and \nI'll tell you the corresponding day.\n"); 
    int day = input.nextInt(); 

    switch (day){ 

    case 0: day = 0; 
    if (day == 0) 
     System.out.println("\nThat would be Sunday!\n"); 
     break; 
    case 1: day = 1; 
    if (day == 1) 
     System.out.println("\nThat would be Monday!\n"); 
     break; 
    case 2: day = 2; 
    if (day == 2) 
     System.out.println("\nThat would be Tuesday!\n"); 
     break; 
    case 3: day = 3; 
    if (day == 3) 
     System.out.println("\nThat would be Wednesday!\n"); 
     break; 
    case 4: day = 4; 
    if (day == 4) 
     System.out.println("\nThat would be Thursday!\n"); 
     break; 
    case 5: day = 5; 
    if (day == 5) 
     System.out.println("\nThat would be Friday!\n"); 
     break; 
    case 6: day = 6; 
    if (day == 6) 
     System.out.println("\nThat would be Saturday!\n"); 
     break; 
    default: if(day < 0 && day > 6); 
     System.out.println("\nThere's no day as such!\n"); 
     System.exit(0); 

    } 
} 

} 

Dank.

+0

Verwenden Sie eine Endlosschleife mit einer Ausgangsbedingung. – Mena

+0

'if (Tag < 0 && day > 6);' ändern zu 'if (Tag < 0 || day > 6)' ODER entfernen Sie es überhaupt. – Azodious

+0

Ändern Sie Ihren 'default:' in 'default: System.out.println (" \ nEs ist kein Tag als solcher! \ N ");' –

Antwort

-1

es in einer Schleife einfügen:

do { 
    int day = input.nextInt(); 

    switch (day){ 

    case 0: day = 0; 
    if (day == 0) 
    System.out.println("\nThat would be Sunday!\n"); 
    break; 
    case 1: day = 1; 
    if (day == 1) 
    System.out.println("\nThat would be Monday!\n"); 
    break; 
case 2: day = 2; 
    if (day == 2) 
    System.out.println("\nThat would be Tuesday!\n"); 
    break; 
    case 3: day = 3; 
    if (day == 3) 
    System.out.println("\nThat would be Wednesday!\n"); 
    break; 
    case 4: day = 4; 
    if (day == 4) 
    System.out.println("\nThat would be Thursday!\n"); 
    break; 
    case 5: day = 5; 
    if (day == 5) 
    System.out.println("\nThat would be Friday!\n"); 
    break; 
    case 6: day = 6; 
    if (day == 6) 
    System.out.println("\nThat would be Saturday!\n"); 
    break; 
    default: if(day < 0 || day > 6); 
    System.out.println("\nThere's no day as such, insert another one!\n"); 
    day = -1; 
    break; 

} 
while (day != -1) 
1
boolean isValid = false; 
do 
{ 
    final int day = scanner.nextInt(); 
    if (day >= 0 && day <= 6) 
    { 
     isValid = true; 
    } 
    else 
    { 
     switch (day) 
     { 
      case 0: 
       System.out.println("Sunday"); 
       break; 
      case 1: 
       System.out.println("Monday"); 
       break; 
      case 2: 
       System.out.println("Tuesday"); 
       break; 
      case 3: 
       System.out.println("Wednesday"); 
       break; 
      case 4: 
       System.out.println("Thursday"); 
       break; 
      case 5: 
       System.out.println("Friday"); 
       break; 
      case 6: 
       System.out.println("Saturday"); 
       break; 
      default: 
       System.out.println("Incorrect"); 
     } 
    } 
} while (!isValid); 

Dieser Code funktioniert für mich. Sie müssen etwas falsch gemacht haben, wenn es nicht für Sie arbeitet.

+0

Erprobt beide Fälle, Fehler bei geschweiften Klammer melden: Syntaxfehler, einfügen" while (Ausdruck); zu vervollständigen tun Aussage. Und die Weile Ausdruck ist bereits –

+0

Können Sie Ihre Frage bearbeiten, um den neuesten Code? –

+0

Der Schalter sollte in den else Zweig des if. gehen – Henry