编辑
谢谢你们的帮助。这是对我有帮助的答案: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/