Guess my Number
Back to the Program-A-Day homepage
ProblemGenerate a program where the computer chooses a random number between 1 and 10 and the user is continuously asked to guess it until they are correct. Use the following guidelines in coming up with a solution:
|
While and For Loops | |
---|---|---|
SolutionTo begin (after import javax.swing.*; and import java.util.Scanner;) we're going to need 4 variables; int randNum, Scanner guess, Boolean correct. int randNum; //used to store the randNum we generate Scanner guess = new Scanner(System.in); //used to store the guess boolean correct = false; //loop variable initialized to false meaning our guess is incorrect
//(int)(Math.random() * 10 generates a random number from 0 to 9 //to get a random number from 1 to 10 we need to add 1 randNum = (int)(Math.random() * 10) + 1;
//get the guess from the user guess = JOptionPane.showInputDialog("Enter a guess between 1 and 10:"); //ensure that the user entered something if(guess != null) { //parse the guess into an integer and compare it to the randNum //then print out a corresponding message if(Integer.parseInt(guess) == randNum) { //set correct to true so that we can exit the while loop correct = true; JOptionPane.showMessageDialog(null, "You are correct", "", JOptionPane.INFORMATION_MESSAGE); } else { JOptionPane.showMessageDialog(null, "You are incorrect", "", JOptionPane.INFORMATION_MESSAGE); } } To continuously ask the user for a guess till correct, we can put the previous code inside of a while loop. //loop until correct changes to true while(correct == false) { //get the guess from the user guess = JOptionPane.showInputDialog("Enter a guess between 1 and 10:"); //ensure that the user entered something if(guess != null) { //parse the guess into an integer and compare it to the randNum //then print out a corresponding message if(Integer.parseInt(guess) == randNum) { //set correct to true so that we can exit the while loop correct = true; JOptionPane.showMessageDialog(null, "You are correct", "", JOptionPane.INFORMATION_MESSAGE); } else { JOptionPane.showMessageDialog(null, "You are incorrect", "", JOptionPane.INFORMATION_MESSAGE); } } } For the final solution code you can look under the code heading. | ||
Code |