0

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!");
  }


 }
}
Alex
  • 7
  • 3

2 Answers2

3
System.exit(0);

This is probably what you're looking for, instead of the break statements.

Cody
  • 466
  • 6
  • 19
1

Replace the break statements in your code with System.exit(0)

dammina
  • 635
  • 1
  • 8
  • 21