在循环中定义的Java变量似乎不会在循环外被识别?

lyn*_*vie 3 java variables loops

我有一段令我困惑的代码.我在if/else语句中定义了一个整数数组,因为数组的长度取决于方法的2个输入的长度.我的问题是在if/else语句之外,变量定义似乎丢失了.

import java.util.Arrays;

public class test {

  public String AddArrays(int [] arg1, int [] arg2) {
    int L1 = arg1.length;
    int L2 = arg2.length;
    if (L1 > L2) {
        int[] output = new int[L2];
        for (int i = 0; i < L2; i++) {
            output[i] = arg1[i] + arg2[i];
        }
    } else {
        int[] output = new int[L1];
        for (int i = 0; i < L2; i++) {
            output[i] = arg1[i] + arg1[i];
        }
    }
    String result = Arrays.toString(output);
    return result;
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到的错误是在String result = Arrays.toString(output);Eclipse告诉我output无法解析为变量的语句中.

...顺便说一下,是的,我知道这不是添加两个整数数组的方法 - 我从更复杂的代码中减少了这个来演示问题!

Ada*_*der 5

outputif声明之前定义.像这样:

int[] output;
int L1 = arg1.length;
int L2 = arg2.length;
if (L1 > L2) {
    output = new int[L2];
    for (int i = 0; i < L2; i++) {
        output[i] = arg1[i] + arg2[i];
    }
} else {
    output = new int[L1];
    for (int i = 0; i < L2; i++) {
        output[i] = arg1[i] + arg1[i];
    }
}
String result = Arrays.toString(output);
return result;
}
Run Code Online (Sandbox Code Playgroud)

当你outputif语句中声明它只是只有那个块范围.