Java 浮动和整数之间的划分';不编译

Java 浮动和整数之间的划分';不编译,java,error-handling,int,double,division,Java,Error Handling,Int,Double,Division,首先,我对Java还是相当陌生,所以如果解决方案是显而易见的,请原谅 我编写的代码应该是将特定数字范围(本例中为-5到20)中的每一秒数字除以一个浮点数,但Java不会编译 public class exerciseD { static float Division (float r) { int n = (-5); float x = 0; if (n <= 20) { float x = n * r;

首先,我对Java还是相当陌生,所以如果解决方案是显而易见的,请原谅

我编写的代码应该是将特定数字范围(本例中为-5到20)中的每一秒数字除以一个浮点数,但Java不会编译

  public class exerciseD {
     static float Division (float r) {

      int n = (-5);
      float x = 0;

      if (n <= 20) {
       float x = n * r; 
       System.out.println(x);
       n = n + 2; 
      }
      else 
          return x;
  }
  public static void main(String[ ] args) {

      float y = Divison(22.5);
      System.out.println(y);

      }
  }
我在这个代码中做错了什么?我就是说不出double有什么问题。每个变量都是浮点或整数,不是吗


谢谢。

好吧,您有多个错误,第一个错误出现在if语句中,您正在定义另一个上面已经定义的X变量。 第二个错误是方法名为除法而不是除法

第三个错误是不能将double作为参数传递给浮点变量,因为 您调用了
Division(22.5)
它应该是Division(22.5F)以指示它是浮点型,否则它将作为double传递,这将是不兼容的类型可能从double到float的有损转换


第四个错误是缺少if块处除法的return语句。好吧,您有多个错误。第一个错误是if语句中定义的另一个X变量,上面已经定义了。 第二个错误是方法名为除法而不是除法

第三个错误是不能将double作为参数传递给浮点变量,因为 您调用了
Division(22.5)
它应该是Division(22.5F)以指示它是浮点型,否则它将作为double传递,这将是不兼容的类型可能从double到float的有损转换


第四个错误是您缺少if块处除法的返回语句

检查拼写:
Division
Division
(缺少
i
)您是对的,谢谢!浮点文本默认为双精度:检查拼写:
division
division
(缺少
i
)你说得对,谢谢!浮点文本默认为双精度:谢谢。我遵循了你的建议,但在“float y=Division(22.5);”下仍然出现了一个错误。错误代码:“对于所执行的类型,方法除数(float)未定义”这意味着什么?是的,方法名称缺少(i)字符,请检查拼写谢谢。我遵循了你的建议,但在“float y=Division(22.5);”下仍然出现了一个错误。错误代码:“对于所执行的类型,方法除数(float)未定义”这意味着什么?是的,方法名称缺少(i)个字符,请检查拼写
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method Divison(double) is undefined for the type exerciseD
at exerciseD.main(exerciseD.java:45)