java中的输出错误卡住
我的java程序有一个输出错误。 我的程序是一个简单的猜测游戏,它从用户那里获取一个数字,同时也创建一个随机数。然后找到这些数字之间的差异,并将其显示给用户。 我是一个初学者,所以我希望能得到简单的指导。非常感谢。 这是我的代码:java中的输出错误卡住,java,Java,我的java程序有一个输出错误。 我的程序是一个简单的猜测游戏,它从用户那里获取一个数字,同时也创建一个随机数。然后找到这些数字之间的差异,并将其显示给用户。 我是一个初学者,所以我希望能得到简单的指导。非常感谢。 这是我的代码: import javax.swing.JOptionPane; public class RandomGuessMatch { public static void main(String[] args) { int random_Number
import javax.swing.JOptionPane;
public class RandomGuessMatch
{
public static void main(String[] args)
{
int random_Number, user_Number, difference;
String random;
random_Number = 1 + (int)(Math.random() * 100);
user_Number = JOptionPane.showInputDialog(null,
"Please guess a number between 1 to 5." + "Please input your number",
"Guessing Game", JOptionPane.INFORMATION_MESSAGE);
difference = JOptionPane.showMessageDialog(null,
"The difference between my number and your number is " + user_Number - random_Number,
"Guessing Game", JOptionPane.INFORMATION_MESSAGE);
boolean valid = random_Number == user_Number;
JOptionPane.showMessageDialog(null,
"Does your number and my number match?" + "\n" + valid,
"Guessing Game", JOptionPane.INFORMATION_MESSAGE);
}
}
这是我得到的错误(我使用jGrasp):
对于第二个错误,您需要像下面这样使用 “我的号码和你的号码之差为”+(用户号码-随机号码) 然后
(用户编号-随机编号)
将为字符串横向。否则它将尝试在不允许的字符串上使用-
对于第一个问题,请检查。没有
信息对话框
在那里第一个错误表明信息对话框
不是JOptionPane的成员。这可能是因为您导入了错误的JOptionPane,或者可能是输入错误(或者确实没有信息\u对话框
)
第二个错误是将字符串串接(使用+
符号和算术运算-
组合在一起)的结果。由于运算顺序,首先计算+
,将用户编号
的值转换为与串接的字符串“我的数字和你的数字之间的差异是”
,然后它被解释为算术运算中的操作数,而这正是你的代码失败的地方。要解决这个问题,只需将减法放在括号中:
"The difference between my number and your number is " + (user_Number - random_Number),
错误1:
JOptionPane
类中没有类似于INFORMATION\u DIALOG
的参数,您也尝试将storeJOptionPane
结果存储为整数类型,但它应该是字符串类型
错误2:
由于您已经连接了字符串,因此需要先减去如下整数(user\u Number-random\u Number)
JOptionPane.showInputDialog(...);
返回字符串
而不是int
正确的方法是:
String s = JOptionPane.showInputDialog(null, "Please guess a number between 1 to 5."
+ "Please input your number",
"Guessing Game", JOptionPane.INFORMATION_MESSAGE);
秒
您必须初始化用户编号
,并将其与字符串连接,您必须将结果置于(用户编号-随机编号)
和JOptionPane.showMessageDialog
返回一个void
,因此不能将其分配给任何变量:
user_Number = 0;
JOptionPane.showMessageDialog(null, "The difference between my number and your number is "
+ (user_Number - random_Number),
"Guessing Game", JOptionPane.INFORMATION_MESSAGE);
这里有一个简单的方法来解决您的问题。(这将替换您的差异=代码行) 请看,您的代码的问题是,用户输入的数字将保存为字符串,这显然不能从int中添加或减去。此外,showMethodDialouge方法返回void,因此您不能将差值设置为它。此代码的作用是将用户输入的数字更改为int,然后进行减法再次,您需要替换您的差异=JOptionPane.showMessageDialouge行 希望这能有所帮助。您可以尝试如下所示。 此代码正在运行
import javax.swing.JOptionPane;
public class RandomGuessMatch {
public static void main(String[] args) {
int random_Number, difference;
String user_Number;
String random;
random_Number = 1 + (int) (Math.random() * 100);
System.out.println(random_Number);
user_Number = JOptionPane.showInputDialog(null,
"Please guess a number between 1 to 5." + "Please input your number", "Guessing Game",
JOptionPane.INFORMATION_MESSAGE);
JOptionPane.showMessageDialog(null,
"The difference between my number and your number is "
+ (Integer.parseInt(user_Number) - random_Number),
"Guessing Game", JOptionPane.INFORMATION_MESSAGE);
boolean valid = (random_Number == Integer.parseInt(user_Number));
JOptionPane.showMessageDialog(null, "Does your number and my number match?" + "\n" + valid, "Guessing Game",
JOptionPane.INFORMATION_MESSAGE);
}
}
这是两个错误。1)
作业窗格
不包含信息对话框
,它有。2)“…”+用户编号
是字符串。不能从字符串中减去数字。请使用“…”+(用户编号-随机编号)`。我已更正了第一个错误,但您对字符串所做的建议仍然给了我错误。@dhke实际上user\u Number
是一个int,JOptionPane.showInputDialog
,返回一个字符串,因此它不会编译too@BackSlash添加差异
。是的,这是第三个错误…谢谢@dhke的建议。谢谢s@AGushin it解决了一个错误,但给出了另一个错误:RandomGuessMatch.java:19:错误:不兼容的类型:int无法转换为字符串int user\u Number\u作为\u int=Integer.parseInt(user\u Number);嘿,您是否已将user_Number的类型更改为String?您需要将其声明为String而不是int。如果已更改,请更新您的代码,以便我可以查看您的整个程序。(我在我的程序上尝试过,它可以正常工作)我已经解决了问题。@AGushin谢谢你的帮助。@Kishore我改进了它们。谢谢:)问题解决了,谢谢你的帮助@YCF_L。问题解决了,谢谢你的帮助@StinePike。问题解决了,谢谢你的帮助@Omore。问题解决了,谢谢你的帮助@Mike。
int user_Number_As_Int = Integer.parseInt(user_Number);
JOptionPane.showMessageDialog(null,
"The difference between my number and your number is " + (random_Number - user_Number_As_Int),
"Guessing Game", JOptionPane.INFORMATION_MESSAGE);
import javax.swing.JOptionPane;
public class RandomGuessMatch {
public static void main(String[] args) {
int random_Number, difference;
String user_Number;
String random;
random_Number = 1 + (int) (Math.random() * 100);
System.out.println(random_Number);
user_Number = JOptionPane.showInputDialog(null,
"Please guess a number between 1 to 5." + "Please input your number", "Guessing Game",
JOptionPane.INFORMATION_MESSAGE);
JOptionPane.showMessageDialog(null,
"The difference between my number and your number is "
+ (Integer.parseInt(user_Number) - random_Number),
"Guessing Game", JOptionPane.INFORMATION_MESSAGE);
boolean valid = (random_Number == Integer.parseInt(user_Number));
JOptionPane.showMessageDialog(null, "Does your number and my number match?" + "\n" + valid, "Guessing Game",
JOptionPane.INFORMATION_MESSAGE);
}
}