Most of us have played the “high-low” guessing game wherein one player picks a number and the other player tries to guess what the number is; in this game, if the guessing player guesses less than the number, then the other player responds “too low,” and if the player guesses more than the number, then the other player responds “too high.” This keeps going until the guessing player correctly guesses the number.
Your task in this assignment is to implement such a guessing game using exceptions. Implement an exception-handling console application with the following:
Program generates random number that user tries to guess
User enters guess
Program generates tooHigh, tooLow or correct exception
Exception handler prints appropriate response to user and repeats b-d until correct guess
Expert Answer
import java.util.Random;
import java.util.Scanner;
public class HighLow {
public static void main(String[] args) {
//Declaring variables
int guessNum, randNum;
// Scanner object is used to get the inputs entered by the user
Scanner sc = new Scanner(System.in);
// Creating a random Class object
Random r = new Random();
//Generating random number
randNum = r.nextInt(100) + 1;
//This loop continues to execute until the user enters correct number
while (true) {
/* This loop continues to execute until
* the user enters a valid number between 1-100
*/
while (true) {
//Getting the number entered by the user
System.out.print(“Guess a number Between 1-100 :”);
guessNum = sc.nextInt();
//Checking whether the user entered a valid number or not
if (guessNum < 0 || guessNum > 100) {
System.out.println(“** Invalid.Must be between 1-100 **”);
continue;
} else
break;
}
try {
/* Based on the user entered number
* generate the appropriate Exception
*/
if (guessNum < randNum) {
throw new TooLowException(“Too Low”);
} else if (guessNum > randNum) {
throw new TooHightException(“Too High”);
} else {
throw new CorrectException(“Correct”);
}
} catch (CorrectException e) {
break;
} catch (Exception e) {
continue;
}
}
}
}
____________________
TooHightException.java
public class TooHightException extends Exception {
public TooHightException(String str)
{
System.out.println(str);
}
}
____________________
TooLowException.java
public class TooLowException extends Exception {
public TooLowException(String str)
{
System.out.println(str);
}
}
______________________
CorrectException.java
public class CorrectException extends Exception {
public CorrectException(String str)
{
System.out.println(str);
}
}
____________________
Output:
Guess a number Between 1-100 :200
** Invalid.Must be between 1-100 **
Guess a number Between 1-100 :99
Too High
Guess a number Between 1-100 :50
Too Low
Guess a number Between 1-100 :60
Too Low
Guess a number Between 1-100 :70
Too Low
Guess a number Between 1-100 :80
Too Low
Guess a number Between 1-100 :90
Too High
Guess a number Between 1-100 :85
Too Low
Guess a number Between 1-100 :87
Too Low
Guess a number Between 1-100 :89
Correct