Java 或多或少的条件总是有效的

Java 或多或少的条件总是有效的,java,if-statement,Java,If Statement,我有一个具有两个双参数的方法: 1.我要检查的值 2.我要检查的值是0.99或1.0,但不是固定值, 返回值为2 预期结果是,如果1小于或等于0.99,则为好,但如果1大于或等于1.0,则为坏 static Double check (Double var1, Double var2) { Double obj= 0.0; if (var1 >= var2) obj = var2; else if (var1 <= var2)

我有一个具有两个双参数的方法: 1.我要检查的值 2.我要检查的值是0.99或1.0,但不是固定值, 返回值为2

预期结果是,如果1小于或等于0.99,则为好,但如果1大于或等于1.0,则为坏

static Double check (Double var1, Double var2) {
    Double obj= 0.0;

    if (var1 >= var2)
        obj = var2;
    else if (var1 <= var2)
        obj = var2;
    return obj; }
var1输入相同的两次,但var2是更改的一次, 问题是,如果值小于0.99(例如0.5),则始终小于1.0,如果值大于1.0,则始终大于0.99,则会给出两个结果。

代码可以帮助您:

static Object check (Double var1, Double var2) {
   Object obj=new Object();

   if (var1 >= var2) {
      obj = var1;
      return obj; 
   }
   else {
      obj = var2;
      return obj; 
   }
}

当您确定var2是0.99或1.0时,您可以简单地如下检查:

static boolean check (Double var1) {

    return !(var1 >= 1.0);
}
为什么在对象返回方法中尝试返回false?区分大小写。无论哪种方式,在if和else语句中,都返回相同的值

static double check (Double var1, Double var2) { // You are returning doubles. Not objects.
   double obj;

   if (var1 >= var2) {
      obj = var1; // not var2, otherwise the else-if statement would be the exact same
      return obj; 
   }
   else if (var1 < var2) {
      obj = var2;
      return obj; 
   }
   else
      return false; // Throws error, I don't know what you want to do with this.
}

不要忘记java是区分大小写的。

在代码中,您总是将var2分配给obj,而不管它是什么,或者if或elseSo首先检查值是否为:>1。顺便说一句,值在0.99和1之间会发生什么?为什么不使用原语类型Double?为什么需要指定else?这是不可能的。@Henry我在输入methodWh之前,取一个小数点后最接近的两位数-为什么在对象返回方法中要返回false?Double在技术上是不正确的。区分大小写。无论哪种方式,在if和else语句中,您都返回相同的值;要运行吗?它已更改,现在已修复。我需要在另一个方法之前的方法中通过验证的var2,因此,如果0.99通过,我会知道它是好的,但它始终通过0.99和1.0,这是什么意思?我不明白。达利·雷吉什的建议似乎是正确的。除非你能证明他错了,而不是你所要求的,否则就把它标记为对的。每个人的情况都一样。您不必告诉我们,但请仔细考虑。不,这不是一个固定值,但根据您的预期结果解释,预期结果是如果1小于或等于0.99,则是好的,但如果1大于或等于1.0,则是坏的,这是一个可能的解决方案。可能您需要更详细地解释预期结果,以便我们提供帮助。不要像这样拆分布尔返回。回来var1>=1.0。