[英]Number guessing game
我一直在尝试做一个猜数字游戏。 它具有一组数字,并且一旦您猜对了正确的数字,就应该计算并显示您所猜测的次数。
目前程序运行前2个步骤,然后停止,请帮助解决此问题
import javax.swing.JOptionPane;
import java.util.Scanner;
//Scott Timmerman TwentyQuestions
public class TwentyQuestions {
public static void main(String[] args) {
int number = 500000;
int numberoftries = 0;
JOptionPane.showMessageDialog(null, "Scott Timmerman TwentyQuestions");
Scanner input = new Scanner(System.in);
int guess;
boolean win = false;
while (win == false) {
JOptionPane.showInputDialog("Enter a number between 1 and 1,000,000" );
guess = input.nextInt();
numberoftries++;
if(guess == number) {
win = true;
}
else if(guess > number){
JOptionPane.showMessageDialog(null, "your guess " + guess + " was greater then the number");
}
else if (guess < number){
JOptionPane.showMessageDialog(null, "your guess " + guess + " was less then the number");
}
}
JOptionPane.showMessageDialog(null, "you lost!\n the number was " + number );
JOptionPane.showMessageDialog(null, "you won!" + numberoftries + " tries");
}
}
`
似乎您希望用户在对话框而不是控制台中输入下一个猜测。 如果是这种情况,则需要使用JOptionPane.showInputDialog
的返回值。 然后,返回值是用户在单击“ ok
按钮之前输入的文本。 您将需要使用Integer.parseUnsignedInt
东西将其隐瞒为整数,其中包括处理NumberFormatException
(以防万一,他们键入的不是数字)。
所以像这样:
try {
String guessText = JOptionPane.showInputDialog("Enter your next guess");
int guess = Integer.parseUnsignedInt(guessText);
} catch (NumberFormatException ex) {
...
}
它停止了,因为程序等到您在控制台上而不是在Java Dialogue上提供值。 切换到控制台并在其中写入例如500,然后按Enter。 这是问题所在:扫描仪输入=新的Scanner(System.in);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.