-2

This code works if you put a number 0-100 and if you but something out of that range. How do i get it to accept things like letters or words and say please enter a grade between 0 and 100? My code is:

 import java.util.Scanner;
 public class LetterGrade {
    public static void main(String[] args) {
    Scanner grades = new Scanner(System.in);
    int grade = 0;
    String LetterGrade = "";
    System.out.print("Enter your test grades: ");
    grade = grades.nextInt();

    if (grade > 100 || grade < 0) {
        System.out.println("Enter the percentage from 0 - 100");
}

while (grade > 100 || grade < 0) {

    System.out.print("Enter your test grades: ");
    grade = grades.nextInt();
    if (grade > 100 || grade < 0) {
        System.out.println("Enter the precentage from 0 - 100");
    }
}
//Define the number Grade to equal a Letter
if (grade <= 100 && grade >= 97)
    LetterGrade = "A+";
if (grade <= 96 && grade >= 93)
    LetterGrade = "A";
if (grade <= 92 && grade >= 90)
    LetterGrade = "A-";
if (grade <= 89 && grade >= 87)
    LetterGrade = "B+";
if (grade <= 86 && grade >= 83)
    LetterGrade = "B";
if (grade <= 82 && grade >= 80)
    LetterGrade = "B-";
if (grade <= 77 && grade >= 74)
    LetterGrade = "C+";
if (grade <= 73 && grade >= 73)
    LetterGrade = "C";
if (grade <= 72 && grade >= 70)
    LetterGrade = "C-";
if (grade <= 69 && grade >= 67)
    LetterGrade = "D+";
if  (grade <= 66 && grade >= 65)
    LetterGrade = "D";
if (grade <= 64 && grade >= 60)
    LetterGrade = "D-";
if (grade <= 59 && grade >= 0)
    LetterGrade = "F";

System.out.println("Your test grade of " + grade + " is a letter grade of " + LetterGrade);

}

}

IceWater
  • 5
  • 1

1 Answers1

0

Scan your grades in String every time as following:

String grade;
grade = grades.next();

Now try to convert in integer, and if you get exception, prompt the error, else accept the input, as following:

try{
    int grd = Integer.parseInt(grade);
    if (grd > 100 || grd < 0) {
        System.out.println("Enter the percentage from 0 - 100");
    }
}
catch(Exception e){
    System.out.println("Enter numbers only.");
}
Kaushal28
  • 4,823
  • 4
  • 30
  • 57