java中的输出错误卡住

java中的输出错误卡住,java,Java,我的java程序有一个输出错误。 我的程序是一个简单的猜测游戏,它从用户那里获取一个数字,同时也创建一个随机数。然后找到这些数字之间的差异,并将其显示给用户。 我是一个初学者,所以我希望能得到简单的指导。非常感谢。 这是我的代码: import javax.swing.JOptionPane; public class RandomGuessMatch { public static void main(String[] args) { int random_Number

我的java程序有一个输出错误。 我的程序是一个简单的猜测游戏,它从用户那里获取一个数字,同时也创建一个随机数。然后找到这些数字之间的差异,并将其显示给用户。 我是一个初学者,所以我希望能得到简单的指导。非常感谢。 这是我的代码:

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
的参数,您也尝试将store
JOptionPane
结果存储为整数类型,但它应该是字符串类型

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