Overclock.net banner

How to count the amount of inputs the user inputs through a scanner in Java?

15K views 1 reply 2 participants last post by  Skyl3r 
#1 ·
I am doing an assignment that asks to create a guessing game but I have already coded the guessing game. I need to count the amount of attempts the user did when finding the correct answer to the guessing game. I am not sure what to use to count each attempt.

Here is my code for the Guessing game:

Code:

Code:
import java.util.Random;
    import java.util.Scanner;
    public class ThreeEleven
    {

     public static void main (String[] args)
        {
    final int MAX = 100;
    int answer, guess;
    String again;
    Scanner scan = new Scanner(System.in);
    System.out.print ("I'm thinking of a number between 1 and "
    + MAX + ". Guess what it is: (or enter 0 to quit) ");
    guess = scan.nextInt();

    Random generator = new Random(); //Random generator. 1 to 100.
    answer = generator.nextInt(MAX) +1;

        //if (guess == answer){ //If guess equals answer
            //System.out.println ("You got it! Good guessing!");

        //}
        //else if (guess == 0){ //Game ends
            //System.out.println ("You have ended your game. Goodbye.");

        //}

            while (guess != answer && guess != 0){ //If guess and 0 is not answer, continue.

                if (guess > answer && guess != 0){ //If guess is higher than answer
                    System.out.println ("You guessed too high!");
                    guess = scan.nextInt();

                }
                else{
                    if (guess < answer && guess != 0){ //If guess is lower than answer
                        System.out.println ("You guessed too low!");
                        guess = scan.nextInt();
                    }

                    else if (guess == answer){ //If guess equals answer
                        System.out.println ("You got it! Good guessing!");
                    }
                    else if (guess == 0){ //Game ends
                        System.out.println ("You have ended your game. Goodbye.");
                    }
                        }
    }
            if (guess == answer){
                System.out.println ("You got it! Good guessing!");
               //System.out.println ("You guessed " +  + " times");
            }
    }
Output:

Code:

Code:
I'm thinking of a number between 1 and 100. Guess what it is: (or enter 0 to quit) 50
    You guessed too high!
    40
    You guessed too high!
    30
    You guessed too high!
    20
    You guessed too high!
    10
    You guessed too high!
    1
    You guessed too low!
    5
    You got it! Good guessing!
The user attempted to guess 7 times.
Would i do something like this?

Code:

Code:
System.out.println ("You guessed " + ? + " times");
If it is, what would I put where the "?" is?

Thank you in advance
 
See less See more
#2 ·
The most straight forward solution would be to define a variable to hold the total count of guesses by the user outside of the scope of the while loop. This would look something like this:

Code:

Code:
int userGuesses = 0; //Define a variable to hold guesses
while (guess != answer && guess != 0){ //If guess and 0 is not answer, continue.

        if (guess > answer && guess != 0){ //If guess is higher than answer
                System.out.println ("You guessed too high!");
                guess = scan.nextInt();
                userGuesses ++; //Increment the guess count
        } else {
                if (guess < answer && guess != 0){ //If guess is lower than answer
                        System.out.println ("You guessed too low!");
                        guess = scan.nextInt();
                        userGuesses ++; //Increment the guess count
                } else if (guess == answer){ //If guess equals answer
                        System.out.println ("You got it! Good guessing!");
                } else if (guess == 0){ //Game ends
                        System.out.println ("You have ended your game. Goodbye.");
                }
        }
}

if (guess == answer){
    System.out.println ("You got it! Good guessing!");
    System.out.println ("You guessed " + userGuesses + " times"); //Print guesses
}
 
This is an older thread, you may not receive a response, and could be reviving an old thread. Please consider creating a new thread.
Top