-2

I am writing some code but am unsure how to set it so users can only input certain letters for grade. (A,B,C,D,F)

import java.io.IOException;
import java.util.Scanner;

public class Forloop {

public static void main(String[] someVariableName) throws IOException {

String Grade1;
String Grade2;
String Grade3;
String Grade4;
String Grade5;


Scanner in = new Scanner( System.in );
System.out.println("This program will ask you to input five grades \n");

System.out.println("Please enter leter grade one. \n");
Grade1 = in.next(); 
System.out.println("Please enter leter grade two. \n");
Grade2 = in.next(); 
System.out.println("Please enter leter grade three. \n");
Grade3 = in.next(); 
System.out.println("Please enter leter grade four. \n");
Grade4 = in.next(); 
System.out.println("Please enter leter grade five. \n");
Grade5 = in.next(); 
System.out.println("Your grades are ==>");
System.out.println(Grade1);
System.out.println(Grade2);
System.out.println(Grade3);
System.out.println(Grade4);
System.out.println(Grade5);

}
}
Marged
  • 10,577
  • 10
  • 57
  • 99
Gillmon
  • 1
  • 1
  • 1

2 Answers2

4

Variables should start with lowercase letter.

To ensure only valid data is entered, loop back and ask again if it's wrong.

Letter is spelled with 2 t's.

Use nextLine(), not next().

Easiest way to check valid text (for this case), is a regular expression, e.g.

String grade1;
do {
    System.out.println("Please enter letter grade one: ");
    grade1 = in.nextLine();
} while (! grade1.matches("[ABCDF]"));
Andreas
  • 154,647
  • 11
  • 152
  • 247
2

Use this approach.

import java.io.IOException;
import java.util.Scanner;


public class Forloop {

  public static void main(String[] someVariableName) throws IOException {

    String[] grades = new String[5];
    Scanner in = new Scanner( System.in );
    System.out.println("This program will ask you to input five grades \n");

    for(int i = 0; i < grades.length; i++) {
      System.out.println("Please enter letter grade " + i + "\n");
      grades[i] = in.nextLine();
      while(!grade[i].matches("[abcdfABCDF]")) {
        System.out.println("Please enter a grade from A to F");
        grades[i] = in.nextLine();
      }
    }

    System.out.println("Your grades are ==>");
    for(int i = 0; i < grades.length; i++) {
      System.out.println(grades[i]);
    }
  }
}
Oss
  • 4,232
  • 2
  • 20
  • 35