访问main方法中的返回列表

时间:2014-03-01 23:46:57

标签: java list

所以基本上我有一个静态类,它返回一个新制作的列表,我需要做的是在main方法中使用它来打印所述列表的每个元素。我得到了错误,无法解决blablabla变量,我想这意味着我尝试使用的列表尚不可用。认为在这里添加最后一行以及视觉效果可能是一个好主意。 给出的错误代码是“b无法解析为变量”。

public class A5P5 {
public static int[] teine(int arv, int alum, int ylem) {
    int [] b = new int[arv];
    for (int i = 0; i < arv; i++) {
        double k = Math.random() * (ylem-alum) + alum;
        int l = (int)k;
        b[i] = l;
    }
    return b;
}
public static void main(String[] args) {
    int [] a = new int[10];
    for (int i = 0; i < 10; i++) {
        double x = Math.random() * (110-50) + 50;
        int y = (int)x;
        a[i] = y;
    }
    for (int elem: a) {
        System.out.println(elem);
    }
    System.out.println("----------------------------------------------------");
    teine(20, 20, 40);
    for (int elem: b) {
        System.out.println(elem);
    }
}

}

4 个答案:

答案 0 :(得分:0)

尝试:

...<delete teine(20, 20, 40);>...
for (int elem: teine(20, 20, 40)) {...

你必须分配从上面的方法返回的值,所以替代方案是:

int[] b = teine(20, 20, 40);
for (int elem: b) {...

答案 1 :(得分:0)

您无法访问b,因为它是teine方法中的本地变量,因此在main中不起作用:

teine(20, 20, 40);
for (int elem: b) {
    System.out.println(elem);
}

但是,因为teine返回你的b,你可以这样做:

for (int elem: teine(20, 20, 40)) {
    System.out.println(elem);
}

答案 2 :(得分:0)

要启动它不是List它是一个数组。它们完全不同。

现在谈谈你的问题。你在main中创建一个新的int数组,但没有用任何东西填充它(根据规范)每个元素的值都是0。

您需要实际调用并分配数组。 int[] a = teine(arv, alum, ylem)将是您开始推进计划的好地方。

我也同意@Brian Roach你可能需要了解你的基础知识。还可以尝试为变量使用更具描述性的名称。当你回到代码中并且需要调试或修改它时,它将帮助人们阅读你的代码和你自己。

答案 3 :(得分:0)

我敢打赌,编译错误与此行有关:

for (int elem: b) {

提示:

  1. 您认为哪个b是指?

  2. 此时b方法中声明的tiene 超出范围。具体而言,当b的调用完成时,变量tiene超出范围。