2

Ok so I want to loop back

I want to use the letter 'y' and 'n' using the input from user 'y' to loop back and 'n' to stop the program. Would I achieve this by using a while loop with booleans? (I am so sorry I am noob.)

public static void main(String[]args)
{
    int gn; //gradenumber input
    Scanner reader = new Scanner(System.in);
    System.out.println("Type in a whole number from 0-100 for a grade output: ");
    gn = reader.nextInt();


    if (gn >= 96 && gn <=100)
    {
        System.out.println("A+");
    }
    else if (gn >= 92 && gn <= 96)
    {
        System.out.println("A");
    }
    else if (gn >= 90 && gn <= 91)
    {
        System.out.println("A-");
    }

    else if (gn >= 86 && gn <= 89)
    {
        System.out.println("B+");
    }

    else if (gn >= 82 && gn <= 85)
    {
        System.out.println("B");
    }

    else if (gn >= 80 && gn <= 81)
    {
        System.out.println("B-");
    }
    else if (gn >= 76 && gn <= 79)
    {
        System.out.println("C+");
    }
    else if (gn >= 72 && gn <= 75)
    {
        System.out.println("C");
    }
    else if (gn >= 70 && gn <= 71)
    {
        System.out.println("C-");
    }
    else if (gn >= 66 && gn <= 69)
    {
        System.out.println("D+");
    }
    else if (gn >= 62 && gn <= 65)
    {
        System.out.println("D");
    }
    else if (gn >= 60 && gn <= 61)
    {
        System.out.println("D-");
    }
    else if (gn >= 0 && gn <= 59)
    {
        System.out.println("F");
    }
    else if (gn > 100)
    {
        System.out.println("Error");
    }
    else if (gn < 0)
    {
        System.out.println("Error");
    }

1 Answers1

2

Create a char variable to hold the user's choice to enter (or not) more grades (y/n) and put the grade input and mark output inside a do/while loop.

import java.util.Scanner;

public class Main
{
    public static void main(String[] args)
    {
        int gn; // gradenumber input
        char choice; // choice input (y/n)

        Scanner reader = new Scanner(System.in);

        do
        {
            System.out.println("Type in a whole number from 0-100 for a grade output: ");
            gn = reader.nextInt();

            if (gn >= 96 && gn <= 100) System.out.println("A+");
            else if (gn >= 92 && gn <= 96) System.out.println("A");
            else if (gn >= 90 && gn <= 91) System.out.println("A-");
            else if (gn >= 86 && gn <= 89) System.out.println("B+");    
            else if (gn >= 82 && gn <= 85) System.out.println("B");    
            else if (gn >= 80 && gn <= 81) System.out.println("B-");
            else if (gn >= 76 && gn <= 79) System.out.println("C+");
            else if (gn >= 72 && gn <= 75) System.out.println("C");
            else if (gn >= 70 && gn <= 71) System.out.println("C-");
            else if (gn >= 66 && gn <= 69) System.out.println("D+");
            else if (gn >= 62 && gn <= 65) System.out.println("D");
            else if (gn >= 60 && gn <= 61) System.out.println("D-");
            else if (gn >= 0 && gn <= 59) System.out.println("F");
            else if (gn < 0 || gn > 100)  System.out.println("Error");

            System.out.println("Do you want to input more grades (y/n)?");
            choice = reader.next().charAt(0);

        } while (choice != 'n'); // repeat until user enters 'n'

        reader.close();
    }
}

Also, do not forget to close() your Scanner object to avoid the Resource Leak warning.

marcelovca90
  • 2,473
  • 2
  • 21
  • 32