如何在for循环中返回最后生成的数字?

时间:2019-06-11 12:52:26

标签: java function return

如何获取for循环的最后生成编号?

所以大概10次之后,我想返回这个数字,但是它说: 此方法必须返回float类型的结果。 当我尝试适应它(添加return语句)时,它根本不起作用...

package test;

public class Test2 {
    public static void main(String[] args) {

        plus();
    }

    public static float plus() {
        float a = 13.6f;
        float t = 1;
        float c = 0;

        for (int i = 0; i < 10; i++) {
            c = (a * t + c);
            if (i == 9) {
                return (float) (c);

            }
        }
        System.out.println(c);

    }
}

此方法必须返回float类型的结果。

3 个答案:

答案 0 :(得分:1)

这里:

System.out.println(c);

将语句放在之后的事实已经表明,您可以设想,循环不一定总是通过返回整个方法而结束循环体。

编译器也不知道(可以,但是在Java中,编译器非常笨,并且忽略了这些知识)。

因此:您必须确保在所有可用路径上都有一个return语句。

现在,您仅覆盖该for循环中的路径。但是,如果该循环永远不会发生,或者在没有达到回报的情况下结束,该怎么办?

因此:只需在末尾添加退货即可。

理想情况下,您只需返回c,然后从循环体中删除if + return。您要在上一次循环迭代后返回,因此只需将返回放在之后!

答案 1 :(得分:0)

您不需要在循环中使用if语句,因为它无论如何都会在i == 9处停止。

public static float plus() {
    float a = 13.6f;
    float t = 1;
    float c = 0;

    for (int i = 0; i < 10; i++) {
        c = (a * t + c);
        }

    return c;
}

答案 2 :(得分:-1)

尝试下面的代码

import java.lang.System;
import java.lang.*;

public class Test2 {
    public static void main(String[] args) {

        float result = Test2.plus();
        System.out.println(result);
    }

    public static float plus() {
        float a = 13.6f;
        float t = 1;
        float c = 0;

        for (int i = 0; i < 10; i++) {
            c = (a * t + c);
            if (i == 9) {
                return (float) (c);
            }
        }
        return c;
    }
}