Java 方法没有为数组返回正确的值。我做错了什么?

Java 方法没有为数组返回正确的值。我做错了什么?,java,arrays,methods,return,Java,Arrays,Methods,Return,我试着用一种方法来计算y,对于直线,给定x的1到x之间的所有值 我希望y的值被放置在一个数组中并返回到main方法。当我运行程序时,数组中的所有值都是0;我哪里出错了 谢谢 import java.util.Scanner; public class HelloWorld { public static void main(String [] args) { int n=0; int k=0; int

我试着用一种方法来计算y,对于直线,给定x的1到x之间的所有值

我希望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;
    }
}
import java.util.Scanner;
公共类HelloWorld{
公共静态void main(字符串[]args)
{
int n=0;
int k=0;
int m=0;
扫描仪输入=新扫描仪(系统输入);
System.out.println(“x的值:”);
n=in.nextInt();
整数行[]=新整数[n];
System.out.println(“k的值:”);
k=in.nextInt();
System.out.println(“m的值:”);
m=in.nextInt();
钙跃层(n,k,m);
对于(int i=0;i对于(int i=0;i你的
main
方法与你的
calcLine
方法填充的数组相比,有一个名为
line
的数组

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

line = calcLine(n,k,m);

你的
main
方法与你的
calcLine
方法填充的数组不同,它的数组名为
line

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

line = calcLine(n,k,m);

您应该将calcLine(n,k,m)赋值给line

您应该将calcLine(n,k,m)赋值给line

您的
calcLine
方法中的
行和
main
方法中的
行是完全分开的。您需要将line的值赋值给
calcLine
函数的返回值

去掉main中的行声明(
intline[]=newint[n];
),并将方法调用行更改为:


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

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

去掉main中的行声明(
intline[]=newint[n];
),并将方法调用行更改为:


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

您的calcLine方法使用局部变量(line)并在其中执行所有计算。然后返回此变量,但在主函数的代码中它不会存储在任何位置

更换线路

calcLine(n,k,m);


局部变量仅在声明的范围内有效。calcLine中的这一“行”与主调用函数中的“行”不同。返回它时,必须将calcLine的结果存储在第行,然后使用它。

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

更换线路

calcLine(n,k,m);

局部变量仅在声明的范围内有效。calcLine中的这一“行”与主调用函数中的“行”不同。返回它时,必须将calcLine的结果存储在第行,然后使用它