【问题标题】:Returning a double with a loop in Java在Java中返回一个带有循环的double
【发布时间】:2012-10-16 06:58:55
【问题描述】:

我试图从一个简单的 for 循环中返回一个 double。出于某种原因,我不断收到一条错误消息,指出该方法缺少返回语句。

这是我的代码:

public static double quantitytable(){

    for(double x=1; x<=1000; x=x+100){    
           return x;
    }

}

【问题讨论】:

  • 相当于return 1;...
  • 另外,你应该永远不要使用double作为循环变量,否则IEEE浮点之神最终会得到你。
  • 我假设您的意思是在循环完成后返回 x?
  • 我认为它向您发出警告的原因是编译器无法判断“x
  • 其他人已经回答了为什么编译器会抱怨 - 你的预期输出是什么?

标签: java loops for-loop return


【解决方案1】:

在 Java 中,每个代码路径都必须返回一个值。编译器不会试图证明 for 循环在所有情况下都会返回(即使我们可以告诉它确实如此),因此它认为控制可能会超过 for 循环的末尾(因此它需要 @987654322 for 循环后的 @ 语句)。

【讨论】:

    【解决方案2】:

    你的循环没有意义:一旦你返回,循环就结束了。本质上,您的程序等价于:

    public static double quantitytable(){
        return 1;
    }
    

    如果您想从一个方法返回多个项目,请返回一个数组或 Java 集合:

    public static List<Double> quantitytable() {
        List<Double> res = new ArrayList<Double>();
        for(double x=1 ; x<=1000 ; x += 100) {
           res.add(x);
        }
        return res;
    }
    

    【讨论】:

    • 谢谢,很有帮助
    【解决方案3】:

    您知道,您的代码将立即返回。而它在第一次迭代中

    double x=1 
          for(; x<=1000; x+=100){    
                   return x;}
    
        }
    

    【讨论】:

      猜你喜欢
      • 2014-01-24
      • 2011-12-09
      • 1970-01-01
      • 1970-01-01
      • 2019-03-24
      • 2023-03-10
      • 2018-08-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多