Java 程序编译但不运行

Java 程序编译但不运行,java,if-statement,java.util.scanner,Java,If Statement,Java.util.scanner,这是我必须完成的任务 有人能把我引向正确的方向吗 程序可以编译,但不能正确运行 错误是InputMissmatch异常。您得到的错误意味着您试图将某种数据用作另一种数据,在您的情况下,您可能试图将字符串用作浮点 在Scanner类中使用任何next方法时,应首先确保用户有适当的输入 为此,您需要使用has方法 您的问题是在使用Scanner.nextFloat()之前没有检查输入是否正确 你应该这样做: if (hope.hasNextFloat()) { // Code to exec

这是我必须完成的任务

有人能把我引向正确的方向吗

程序可以编译,但不能正确运行


错误是InputMissmatch异常。

您得到的错误意味着您试图将某种数据用作另一种数据,在您的情况下,您可能试图将字符串用作浮点

在Scanner类中使用任何next方法时,应首先确保用户有适当的输入

为此,您需要使用has方法


您的问题是在使用Scanner.nextFloat()之前没有检查输入是否正确

你应该这样做:

if (hope.hasNextFloat())
{
    // Code to execute when you have a proper float, 
    // which you can retrieve with hope.nextFloat()
}
else
{ 
    // Code to execute when the user input is not a float
    // Here you should treat it properly, maybe asking for new input
}
if (hope.hasNextString())
{
   if (hope.nextString().equals("A"))
   {
       // Code for option "A"
   }
   else if (hope.nextString().equals("B"))
   {
       // Code for option "B"
   }
   else ...
}
这应该足以为你指明正确的方向

此外,请查看api文档以了解更多详细信息

编辑

此外,您要求用户输入字符(或字符串):“A”、“B”等,但您试图将它们与浮点进行比较。这是错误的,您应该将它们与字符串或字符进行比较,如下所示:

if (hope.hasNextFloat())
{
    // Code to execute when you have a proper float, 
    // which you can retrieve with hope.nextFloat()
}
else
{ 
    // Code to execute when the user input is not a float
    // Here you should treat it properly, maybe asking for new input
}
if (hope.hasNextString())
{
   if (hope.nextString().equals("A"))
   {
       // Code for option "A"
   }
   else if (hope.nextString().equals("B"))
   {
       // Code for option "B"
   }
   else ...
}

您可以在那里使用开关,但您似乎还不太熟悉java,因此我将把它留到另一个时间。

您得到的错误意味着您试图使用某种数据作为另一种数据,在您的情况下,您可能试图使用字符串作为浮点

在Scanner类中使用任何next方法时,应首先确保用户有适当的输入

为此,您需要使用has方法


您的问题是在使用Scanner.nextFloat()之前没有检查输入是否正确

你应该这样做:

if (hope.hasNextFloat())
{
    // Code to execute when you have a proper float, 
    // which you can retrieve with hope.nextFloat()
}
else
{ 
    // Code to execute when the user input is not a float
    // Here you should treat it properly, maybe asking for new input
}
if (hope.hasNextString())
{
   if (hope.nextString().equals("A"))
   {
       // Code for option "A"
   }
   else if (hope.nextString().equals("B"))
   {
       // Code for option "B"
   }
   else ...
}
这应该足以为你指明正确的方向

此外,请查看api文档以了解更多详细信息

编辑

此外,您要求用户输入字符(或字符串):“A”、“B”等,但您试图将它们与浮点进行比较。这是错误的,您应该将它们与字符串或字符进行比较,如下所示:

if (hope.hasNextFloat())
{
    // Code to execute when you have a proper float, 
    // which you can retrieve with hope.nextFloat()
}
else
{ 
    // Code to execute when the user input is not a float
    // Here you should treat it properly, maybe asking for new input
}
if (hope.hasNextString())
{
   if (hope.nextString().equals("A"))
   {
       // Code for option "A"
   }
   else if (hope.nextString().equals("B"))
   {
       // Code for option "B"
   }
   else ...
}

您可以在那里使用一个开关,但您似乎还不太熟悉java,所以我将把它留到另一个时间。

您的问题是在浮点字段中输入一个字母。 在您的程序中,您要求用户输入浮点:

A = hope.nextFloat();
但是如果你输入字母“A”,你会得到一个异常,因为“A”不是一个浮点数,而是一个字符串

解决问题的一个更简单的方法是,您只需读取用户从扫描仪输入的输入,而不是拥有所有选项字段,如:

String choice = hope.next();
接下来在if语句中,检查字符串选项中的值是否等于特定的字母,例如

if (choice.equals("A")) {
        number4 = (number1 + number2 + number3);
        System.out.printf("Your results are:" + (number4));
    } 

您也可以对其他选项执行相同的操作。

您的问题是在浮点字段中输入字母。 在您的程序中,您要求用户输入浮点:

A = hope.nextFloat();
但是如果你输入字母“A”,你会得到一个异常,因为“A”不是一个浮点数,而是一个字符串

解决问题的一个更简单的方法是,您只需读取用户从扫描仪输入的输入,而不是拥有所有选项字段,如:

String choice = hope.next();
接下来在if语句中,检查字符串选项中的值是否等于特定的字母,例如

if (choice.equals("A")) {
        number4 = (number1 + number2 + number3);
        System.out.printf("Your results are:" + (number4));
    } 

您也可以对其他选项执行相同的操作。

错误为InputMissmatch异常。=>异常应指向引发异常的行。这将有助于你缩小调查范围。你提供了什么意见?是否以A、B、C或0、1、2等形式输入?现在是熟悉调试器的好时机。如果不阅读代码,则如果输入不匹配,则表示您正在从键盘输入与输入信息的变量类型不同的内容。例如,在int字段中输入一个字符。我试图让用户输入a、S、M、D、O或E作为他们的选择,然后if语句应该执行其余操作?“错误为InputMissmatch exception。”=>异常应该将您指向引发异常的行。这将有助于你缩小调查范围。你提供了什么意见?是否以A、B、C或0、1、2等形式输入?现在是熟悉调试器的好时机。如果不阅读代码,则如果输入不匹配,则表示您正在从键盘输入与输入信息的变量类型不同的内容。例如,在int字段中输入一个字符。我试图让用户输入a、S、M、D、O或E作为他们的选择,然后if语句应该完成其余的操作?我完成了这项操作,并编辑了代码。这个程序现在运行得很好。一个我应该意识到的简单解决方法。我仍在学习,并在思考我必须做的事情。谢谢,我这样做了,并编辑了代码。这个程序现在运行得很好。一个我应该意识到的简单解决方法。我仍在学习,并在思考我必须做的事情。非常感谢。