方法不返回数组的正确值.我做错了什么



我正在尝试使用一种方法来计算直线给定x的1到x之间的所有值的y。

我希望将 y 的值放在数组中并返回到 main 方法。当我运行程序时,数组中的所有值均为 0;我哪里做错了?

谢谢!

import java.util.Scanner;
public class HelloWorld {
    public static void main(String [] args)
        {
            int n=0;
            int k=0;
            int m=0;
            Scanner in = new Scanner(System.in);
            System.out.println("Value of x: ");
            n = in.nextInt();
            int line[] = new int [n];
            System.out.println("value of k: ");
            k = in.nextInt();
            System.out.println("Value of m: ");
            m = in.nextInt();
            calcLine(n,k,m);
            for(int i = 0; i < line.length; i++){ 
                System.out.println(line[i]);  
            }
        }
    public static int[] calcLine(int n, int k, int m)
    {
        int[] line = new int[n];
        for (int i=0; i<line.length;i++){
            line[i] = (int) (k * i + m);
        }
        return line;
    }
}

您的main方法具有与calcLine方法填充的数组不同的数组,称为line

您应该将 calcLine 方法的返回数组分配给main方法的 line 变量:

line = calcLine(n,k,m);

你应该赋值calcLine(n,k,m(;

calcLine方法中的linemain方法中的是完全独立的。 您需要将 line 的值分配给 calcLine 函数的返回值。

去掉主(int line[] = new int [n];(中的行声明,并将方法调用行更改为:

int line[] = calcLine(n,k,m);

您的 calcLine 方法是使用局部变量(线(并在其中执行所有计算。然后你返回这个变量,但在你的主函数的代码中,它没有存储在任何地方。

替换行

calcLine(n,k,m);

line = calcLine(n,k,m);

局部变量仅在声明的范围内处于活动状态。calcLine 中的这个"行"与主调用方函数中的"行"不同。当您返回它时,您必须将计算线的结果存储在行中,然后使用它。

相关内容

最新更新