我正在尝试使用一种方法为直线给定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;
}
}
答案 0 :(得分:6)
您的main
方法有一个名为line
的数组,而不是calcLine
方法填充的数组。
您应该将calcLine
方法的返回数组分配给line
方法的main
变量:
line = calcLine(n,k,m);
答案 1 :(得分:0)
你应该分配calcLine(n,k,m);行
答案 2 :(得分:0)
line
方法中的calcLine
和main
方法中的calcLine
完全分开。您需要将line的值分配给int line[] = new int [n];
函数的返回值。
摆脱main(int line[] = calcLine(n,k,m);
)中的行声明,并将方法调用行更改为:
{{1}}
答案 3 :(得分:0)
您的calcLine方法使用局部变量(line)并在其中执行所有计算。然后返回此变量,但在主函数的代码中,它不会存储在任何位置。
替换
行calcLine(n,k,m);
带
line = calcLine(n,k,m);
局部变量仅在声明的范围内存在。 calcLine中的这个“行”与主调用函数中的“行”不同。返回时,必须将calcLine的结果存储在行中然后再使用它。