Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么语句不能从内部识别变量?_Java_Return_Cannot Find Symbol - Fatal编程技术网

Java 为什么语句不能从内部识别变量?

Java 为什么语句不能从内部识别变量?,java,return,cannot-find-symbol,Java,Return,Cannot Find Symbol,我想做的是创建一个数组,从另一个数组中提取偶数。我不确定我的做法是否正确。我一直在寻找从语句中返回函数/方法的方法,但我找不到任何东西,甚至不确定这是否可行 无论如何,我在这里遇到的问题是“找不到符号”下面的“返回数组”。我不确定这是什么意思 public static int[] getEvenArray(int[] array) { int dividedBy = 2; int evenElement; int evenCount = 0;

我想做的是创建一个数组,从另一个数组中提取偶数。我不确定我的做法是否正确。我一直在寻找从语句中返回函数/方法的方法,但我找不到任何东西,甚至不确定这是否可行

无论如何,我在这里遇到的问题是“找不到符号”下面的“返回数组”。我不确定这是什么意思

public static int[] getEvenArray(int[] array)
{        
    int dividedBy = 2;
    int evenElement;
    int evenCount = 0;

    for(int i = 0; i < array.length; i++)
    {
        int[] evenArray;
        evenElement = array[i] % dividedBy;

        if(evenElement == 0)
        {
            evenCount++;
        }
        else
        {
            array[i] = 0;
        }

        evenArray = new int[evenCount];

        for(int x = 0; x < evenArray.length; x++)
        {
            if(array[i] != 0)
            {
                evenArray[x] = array[i];
            }
        }
    }

    return evenArray;
}
公共静态int[]getEvenArray(int[]array)
{        
int除以=2;
整数元;
int evenCount=0;
for(int i=0;i

这是我的一个讲座中的一个教程,至少说起来有点挑战性:-)0

evenArray
是在
for
循环的范围内定义的。(实际上比这更糟;您在每次迭代中都要重新说明它,所以要丢弃以前的内容)

因此,一旦您在
for
循环之外,就无法引用它

最快的修复方法是对这种类型使用
std::vector
,并在函数的开头声明它。同时将函数的返回类型更改为相同的。不要忘记适当调整向量的大小


(接下来,聪明的讲师会问你返回一个
std::vector
,它可能会获取该向量的深度副本。在C++11之前,你会提到返回值优化,现在你可以谈论r值引用。由于将使用移动构造函数,因此不会获取深度副本).

evenArray
for
循环的
范围内定义。(实际上比这更糟;您在每次迭代中都要重新说明它,所以要丢弃以前的内容)

因此,一旦您在
for
循环之外,就无法引用它

最快的修复方法是对这种类型使用
std::vector
,并在函数的开头声明它。同时将函数的返回类型更改为相同的。不要忘记适当调整向量的大小


(接下来,聪明的讲师会问你返回一个
std::vector
,它可能会获取该向量的深度副本。在C++11之前,你会提到返回值优化,现在你可以谈论r值引用。由于将使用移动构造函数,因此不会获取深度副本).

evenArray
for
循环的
范围内定义。(实际上比这更糟;您在每次迭代中都要重新说明它,所以要丢弃以前的内容)

因此,一旦您在
for
循环之外,就无法引用它

最快的修复方法是对这种类型使用
std::vector
,并在函数的开头声明它。同时将函数的返回类型更改为相同的。不要忘记适当调整向量的大小


(接下来,聪明的讲师会问你返回一个
std::vector
,它可能会获取该向量的深度副本。在C++11之前,你会提到返回值优化,现在你可以谈论r值引用。由于将使用移动构造函数,因此不会获取深度副本).

evenArray
for
循环的
范围内定义。(实际上比这更糟;您在每次迭代中都要重新说明它,所以要丢弃以前的内容)

因此,一旦您在
for
循环之外,就无法引用它

最快的修复方法是对这种类型使用
std::vector
,并在函数的开头声明它。同时将函数的返回类型更改为相同的。不要忘记适当调整向量的大小



(接下来,聪明的讲师会问你返回一个
std::vector
,它可能会获取该向量的深度副本。在C++11之前,你会提到返回值优化,现在你可以谈论r值引用。由于将使用移动构造函数,因此不会获取深度副本).

块内声明的变量在块外不可见;将此整数移动到数组中;到函数的最开始处。

在块内声明的变量在块外不可见;将此整数移动到数组中;到函数的最开始处。

在块内声明的变量在块外不可见;将此整数移动到数组中;到函数的最开始处。

在块内声明的变量在块外不可见;将此整数移动到数组中;到函数的最开始。

我移动了'int[]evenArray;'在for循环之前,然后我得到“notbeinitialized”错误,但它已在for循环内部初始化。问题是因为它的初始化在“return evenArray;”的for循环的范围内看不到初始化。使用<代码> STD::vector < /COD>除非你特别要求不要这样做。@ Bathsheba:要做到这一点,你必须首先重写C++中的代码。我的道歉,混淆了。我今天早上做的是C++:它确实是Java-It[IN]数组;在for循环之前,然后我得到“notbeinitialized”错误,但它已在for循环内部初始化。问题是因为它的初始化在“return evenArray;”的for循环的范围内看不到初始化。使用<代码> STD::vector < /COD>除非你特别要求不要这样做。@ Bathsheba:要做到这一点,你必须首先重写C++中的代码。我的道歉,混淆了。我今天早上做的是C++:它确实是Java-It[IN]数组;在for循环之前,然后