user2077024
user2077024

Reputation: 13

I need help making a certain looping situation in Java

EDIT

Thanks for your help guys. Here's the answer that helped me: https://stackoverflow.com/a/14903642

Here's the complete working code: http://pastebin.com/1kbipuAZ

End Edit

I'm supposed to make a simple cmd game that asks a user to input a number between a certain range of numbers. Then Player 2 is supposed to take a stab at guessing what that number is. The program keeps telling "Higher" or "Lower" until the player guesses the number. I figure I'm supposed to use some if/else statements and maybe while loops, but I can't figure out in what way. I either get an infinite loop, or it stops before I want it too. Here is what I have:

    import java.io.*;

class game
{
    public static void main (String[]args) throws IOException
    {
        InputStreamReader inStream = new InputStreamReader(System.in);
        BufferedReader stdin = new BufferedReader(inStream);

        String inData;

        System.out.println("Welcome to The Game. Player One, please enter an                                integer higher than 0, and less than 1000...\n");

        inData = stdin.readLine();

        int number = Integer.parseInt(inData);

        if(number >= 1000 || number <= 0)
        {
            System.out.println("Sorry, that number is out of the acceptable     range on numbers...\n");
        }
        else
        {
            System.out.println();
        }

        String f1;

        System.out.println("Player Two, Please enter a guess as to what Player     One's number is...\n");

        f1 = stdin.readLine();

        int guess = Integer.parseInt(f1); 


        while(guess < number)
        {
            if(guess != number)
            {
                System.out.println("Higher. Please Guess Again...\n");
            }
            else
            {
                System.out.println();
            }
            break;


        }
        while(guess > number)
        {
            if(guess != number)
            {
                System.out.println("Lower. Please Guess Again...\n");
            }
            else
            {
                System.out.println();
        }
            break;

        }
        if(number==guess)
        {
            System.out.println("Congratulations. Thank you for     playing...\n");
        }
        else
        {
            System.out.println();
        }




    }
}

I've tried different combinations of loops and statements etc. and I just can't get very far.

Upvotes: 0

Views: 108

Answers (1)

Amit
Amit

Reputation: 817

Your code is almost correct....

You need to break out of loop when second player guess correct number. So,

while(guess != number)

In the loop you need to do comparison and print. Also you need to get input each time in loop.

Code as below:

    f1 = stdin.readLine();
    int guess = Integer.parseInt(f1); 

    while(guess != number)
    {
        if(guess < number)
        {
            System.out.println("Higher. Please Guess Again...\n");
        }
        else if(guess > number)
        {
            System.out.println("Lower. Please Guess Again...\n");
        }

        f1 = stdin.readLine();
        guess = Integer.parseInt(f1); 
    }

*Edited**

Complete working program below:

 import java.io.*;

class game
{
    public static void main (String[]args) throws IOException
    {
        InputStreamReader inStream = new InputStreamReader(System.in);
        BufferedReader stdin = new BufferedReader(inStream);

        String inData;

        System.out.println("Welcome to The Game. Player One, please enter an                                integer higher than 0, and less than 1000...\n");

        inData = stdin.readLine();

        int number = Integer.parseInt(inData);

        if(number >= 1000 || number <= 0)
        {
            System.out.println("Sorry, that number is out of the acceptable     range on numbers...\n");
        }
        else
        {
            System.out.println();
        }

        String f1;

        System.out.println("Player Two, Please enter a guess as to what Player     One's number is...\n");

        f1 = stdin.readLine();
        int guess = Integer.parseInt(f1); 

        while(guess != number)
        {
            if(guess < number)
            {
                System.out.println("Higher. Please Guess Again...\n");
            }
            else if(guess > number)
            {
                System.out.println("Lower. Please Guess Again...\n");
            }

            f1 = stdin.readLine();
            guess = Integer.parseInt(f1); 
        }



    }
}

Here is the output:

Welcome to The Game. Player One, please enter an integer higher than 0, and less than 1000...

10

Player Two, Please enter a guess as to what Player One's number is...

2 Higher. Please Guess Again...

5 Higher. Please Guess Again...

7 Higher. Please Guess Again...

12 Lower. Please Guess Again...

11 Lower. Please Guess Again...

9 Higher. Please Guess Again...

10

Upvotes: 1

Related Questions