I'm currently create a simple grade calculator, however I want the console not to continue with the next line when the user doesn't enter a number between 0 and 20. Even if the user enters the wrong one the next line is executed. Also feel free to suggest ways of making my program simpler.
import java.util.Scanner;
public class Calculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Enter grade for Exam 1:>");
int exam1 = scanner.nextShort();
while (exam1 > 20 || exam1 < 0) {
System.out.println("Error! Not within mark range!");
break;
}
System.out.println("Enter grade for Exam 2:>");
int exam2 = scanner.nextShort();
while (exam2 > 20 || exam2 < 0) {
System.out.println("Error! Not within mark range!");
break;
}
System.out.println("Enter grade for Exam 3:>");
int exam3 = scanner.nextShort();
while (exam3 > 20 || exam3 < 0) {
System.out.println("Error! Not within mark range!");
break;
}
System.out.println("Enter grade for Exam 4:>");
int exam4 = scanner.nextShort();
while (exam4 > 20 || exam4 < 0) {
System.out.println("Error! Not within mark range!");
break;
}
int average = exam1 + exam2 + exam3 + exam4;
average /= 4;
System.out.println("You average grade is: " + average + "\n");
average *= 5;
System.out.println("Your score is" + average + "%!\n");
if (average > 70) {
System.out.println("You get an A overall");
} else if (average > 60 || average <= 70) {
System.out.println("You get a B overall");
} else if (average > 40 || average <= 60) {
System.out.println("You get a C overall");
} else {
System.out.println("You have failed the module!");
}
}
}