java - 我需要帮助在 Java 中实现某种循环情况

标签 java loops numbers

编辑

谢谢你们的帮助。这是对我有帮助的答案:https://stackoverflow.com/a/14903642

这是完整的工作代码:http://pastebin.com/1kbipuAZ

结束编辑

我应该制作一个简单的 cmd 游戏,要求用户输入特定数字范围之间的数字。然后玩家 2 应该尝试猜测这个数字是多少。程序会不断告诉玩家“更高”或“更低”,直到玩家猜出数字。我想我应该使用一些 if/else 语句,也许还有 while 循环,但我不知道用什么方式。我要么得到一个无限循环,要么在我想要它之前停止。这是我所拥有的:

    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();
        }




    }
}

我尝试了循环和语句等的不同组合,但我只是无法走得太远。

最佳答案

你的代码几乎是正确的......

当第二个玩家猜到正确的数字时,您需要跳出循环。 所以,

while(guess != number)

在循环中你需要进行比较和打印。 此外,您还需要每次循环时获取输入。

代码如下:

    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); 
    }

*已编辑**

完整的工作程序如下:

 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); 
        }



    }
}

这是输出:

欢迎来到游戏。玩家一号,请输入一个大于0且小于1000的整数...

10

玩家二号,请输入猜测玩家一号的号码...

2 更高。请再猜一下...

5 更高。请再猜一下...

7 更高。请再猜一下...

12 降低。请再猜一下...

11 降低。请再猜一下...

9 更高。请再猜一下...

10

关于java - 我需要帮助在 Java 中实现某种循环情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14903568/

相关文章:

excel - 将数字转换为相应的 Excel 列

java - 使用 java swing 删除导致 NullPointerException 的 Pane

SQL 查询 – 执行循环但使用变量数组

c - 用递归找到一个两位数

c - For 循环交替 printf

javascript - 如何从 JQuery 的最后一条记录开始进行 JSON 循环

java - 工程格式化程序功能不上轮

java - 无法将 [ 替换为 {

java - 为来自不同包的对象创建一个通用转换器

java - 无法从 SQL Server 正确获取由 ASCII 值组成的值