/** * */ package com.github.cbpos1989.examples.conditional; /** * App that demonstrates the use of the switch statement. * * @author Colm O'Sullivan * */ import java.util.Scanner; public class GradeApp{ int result = 0; String grade = null; String resultGrade = null; String userOption1 = "1"; String userOption2 = "2"; String userInput = null; private Scanner scan; public static void main(String[]args){ //System.out.println("Working"); GradeApp myGradeApp = new GradeApp(); if(args.length == 1){ try{ myGradeApp.result = Integer.parseInt(args[0]); myGradeApp.calculateResult(myGradeApp.result); }catch(Exception ex){ myGradeApp.grade = args[0].toUpperCase(); myGradeApp.calculateGradeRange(myGradeApp.grade); } } else if(args.length == 0){ //System.out.println("Please enter a result"); myGradeApp.enterResult(); } } //Allows User to Input Result if they failed to do so at Runtime Command Line void enterResult(){ scan = new Scanner(System.in); if (userInput == null) { System.out.println("Enter 1 to input number grade\nEnter 2 to input alpha grade"); userInput = scan.nextLine(); enterResult(); } else { if (userInput.equals(userOption1)) { System.out.print("Enter Your Result: "); String inputResult = scan.nextLine(); //Replaces all characters in String except for digits(positive or negative) String inputResultTemp = inputResult.replaceAll("[^-0-9]",""); if (inputResultTemp.length() > 1) { result = Integer.parseInt(inputResultTemp); if(result > 0){ System.out.println(result); calculateResult(result); } else { System.out.println("You Failed Horribly\n!!!Ending Program Now!!!"); } } else { enterResult(); } } else if (userInput.equals(userOption2)) { System.out.print("Enter Your Grade: "); String inputGrade = scan.nextLine(); String inputGradeTemp = inputGrade.replaceAll("[^A-Za-z]",""); System.out.println(inputGradeTemp); if (inputGradeTemp.length() >= 1) { calculateGradeRange(inputGradeTemp.toUpperCase()); } else { System.out.println("Enter valid value"); enterResult(); } } else { userInput = null; enterResult(); } } } //Takes user Input Result value and checks what grade they will recieve void calculateResult(int resultInput){ if (resultInput > 84) { System.out.println("You got an A"); } else if(resultInput > 69) { System.out.println("You got a B"); } else if(resultInput > 54) { System.out.println("You got a C"); } else if(resultInput > 39) { System.out.println("You got a D"); } else if(resultInput > 24) { System.out.println("You got an E"); } else { System.out.println("You got nothing"); } } void calculateGradeRange(String gradeInput){ switch(gradeInput){ case "A": resultGrade = "85-100"; break; case "B": resultGrade = "70-84"; break; case "C": resultGrade = "55-69"; break; case "D": resultGrade = "40-54"; break; default: resultGrade = "Fail"; } System.out.println("Your grade range is: " + resultGrade); } }