2017-02-25 4 views
-1

Unten ist ein Programm, das Benutzereingaben in eine Buchstabenpunktzahl konvertieren soll. Der Code funktioniert wie vorgesehen, aber meine "endGame" -Methode läuft beim Start, bevor ich es auch möchte.
importieren java.util.Scanner; // Ich brauche dies die BenutzereingabeKann while-Schleife mit einem Zeichen nicht stoppen

zu bekommen
public class Grade { 

public static void main(String[] args) { 
    startGame(); // This creates my start game method 
    endGame(); // this will end the game 
    gradeLoop(); // This creates the letter grade determination 
} 

public static void startGame() {// Starts the startGame method 
    System.out.println("Welcome to the Auto Score OneThousand"); 
    System.out.println("Please enter your score from 0 to 100 (or press 'E' to exit): "); 
} 

public static void gradeLoop() { 

    String userInput; // assigns user input 
    char letter = 'A'; // assign a char that will be updated with the user's 
         // letter grade 
    double score = 0.0; 
    boolean go = true; 

    while (go) { 
     Scanner keyboard = new Scanner(System.in); // Create a new Scanner 
                // to hold the input 
     userInput = keyboard.nextLine(); 

     if (userInput.equals("E") || userInput.equals("e")) { 
      go = false; 
      endGame(); 
      break; 
     } else { 
      score = Double.parseDouble(userInput);// convert string to 
                // double 
     } 
     if (score >= 90 & score <= 100) 

      letter = 'A'; 

     else if (score >= 80 & score <= 89) 

      letter = 'B'; 

     else if (score >= 70 & score <= 79) 

      letter = 'C'; 

     else if (score >= 60 & score <= 69) 

      letter = 'D'; 

     else if (score >= 0 & score <= 59) 

      letter = 'F'; 

     { 

      System.out.println("You earned a letter grade of: " + letter + "\n\n"); 

      startGame(); 
     } 
    } 
} 

public static void endGame() { 
    System.out.println("Thank you, This ends your Auto Score OneThousand experiance"); 
} 

}

+1

Beginnen Sie mit dem Einrücken und Hinzufügen von geeigneten Zeilenbereichen. Dies ist eine Textwand und nahezu unlesbar. – chrylis

+0

Ist der angegebene Code in der Java-Grammatik korrekt? Sieht so merkwürdig aus. – Codemole

+0

Nehmen Sie an, dass die Person, die die Grade eingibt, die Buchstabenklasse ohne die Hilfe des Programms bestimmen und eintragen kann. Dann können Sie eine switch-Anweisung anstelle von if ... elseif ... else verwenden, indem Sie die Fälle 'a' bis 'e' und 'default' verwenden, um die Eingabe von Einzelzeichen korrekt zu handhaben. Eine Fortsetzungsvariable kann eine enthaltende while-Schleife steuern, die im Fall 'E' auf false gesetzt wird. –

Antwort

0

den Test am Anfang der Schleife Put. Wie zum Beispiel

Tipp: Es gibt zusätzliche Klammern in Ihrem Code, es ist besser, sie zu entfernen.

Verwandte Themen