2016-04-28 13 views
1

Kann jemand meinen Code bearbeiten, damit er das Auswahlmenü wiederholt. Wenn die Auswahl keine der fünf Optionen ist, wird der Benutzer aufgefordert, die Eingabe erneut durchzuführen, bis eine gültige Option ausgewählt ist. Wenn möglich, wäre eine Erklärung hilfreich. DankeSo validieren Sie das Auswahlmenü mit einer Schleife

Hier ist mein Code.

import java.util.*; 
public class ShapeLoopValidation 
{ 
    public static void main (String [] args) 
    { 
     chooseShape(); 
    } 

    public static void chooseShape() 
    { 
     while (true){ 
      Scanner sc = new Scanner(System.in); 
      System.out.println("Select a shape number to calculate area of that shape!"); 
      System.out.print("Circle = 1. \nRectangle = 2. \nTriangle = 3. \nExit = 4. \nINPUT : "); 
      int shapeChoice = sc.nextInt(); 
      //while (true) { 
      if (shapeChoice >= 1 && shapeChoice <=4) 
      { 
       if (shapeChoice == 1) 
       { 
        circle(); 
       } 
       else if (shapeChoice == 2) 
       { 
        rectangle(); 
       } 
       else if (shapeChoice == 3) 
       { 
        triangle(); 
       } 
       else if (shapeChoice == 4) 
       { 
        return; 
       } 
      } 
      else 
      { 
       System.out.print("Error : Choice " + shapeChoice + "Does not exist."); 
      } 
     } 

     class Test { 
      int a, b; 

      Test(int a, int b) { 
       this.a = a; 
       this.b = b; 
      } 
     } 
    } 
+0

korrekter Code Einrückung – mmuzahid

+0

"Kann jemand meinen Code bearbeiten, damit er das Auswahlmenü wiederholt. Wenn die Auswahl nicht zu den 5 Optionen gehört, wird der Benutzer aufgefordert, die Eingabe erneut durchzuführen, bis eine gültige Option ausgewählt ist. "<- Ihr Code tut dies bereits. Was ist das Problem? –

Antwort

0

Erstens: einen Blick auf switch

Zweitens: Lesen Sie ein wenig über do-while loops (sie in der Regel eine gute Passform für diese Art von Situationen sind).

Nun, wie ich würde implementieren es (aber Sie sollten wirklich lernen, wie man eine Schleife in diesen Szenarien machen):

public static void chooseShape() { 

    boolean valid = false; 
    do { 
     Scanner sc = new Scanner(System.in); 
     System.out.println("Select a shape number to calculate area of that shape!"); 
     System.out.print("Circle = 1. \nRectangle = 2. \nTriangle = 3. \nExit = 4. \nINPUT : "); 
     int shapeChoice = sc.nextInt(); 

     switch (shapeChoice) { 
      valid = true; 
      case 1: 
       circle(); 
       break; 
      case 2: 
       rectangle(); 
       break; 
      case 3: 
       triangle(); 
       break; 
      case 4: 
       return; 
      default: 
       valid = false; 
       System.out.println("Error : Choice " + shapeChoice + "Does not exist."); 
       System.out.println("Please select one that exists.") 
     } 
    } while (!valid) 
} 
0

Verwendung do-while Flusssteuerung bis EXIT Code eingegeben:

int shapeChoice; 
do { 
    System.out.println("Select a shape number to calculate area of that shape!"); 
    System.out.print("Circle = 1. \nRectangle = 2. \nTriangle = 3. \nExit = 4. \nINPUT : "); 
    int shapeChoice = sc.nextInt(); 
    // then use if-else or switch 
} while (shapeChoice != 4); 

Verwenden Sie break Anweisung zu Schleife brechen an Ihrem Code wie folgt:

else if (shapeChoice == 4) 
{ 
    break; 
} 
Verwandte Themen