Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/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
C# 在循环之前声明的变量在c中的循环中不存在#_C#_Variables_Scope - Fatal编程技术网

C# 在循环之前声明的变量在c中的循环中不存在#

C# 在循环之前声明的变量在c中的循环中不存在#,c#,variables,scope,C#,Variables,Scope,我正在使用c#,我有流动问题: 我在之前减速了高度变量,因为循环ant表示循环中不存在 在代码的这一部分中,我希望程序存储除第一个元素之外的“data”数组的所有第三个元素,因此如果“data”数组如下所示:1,2,3,4,5,6,7,8,9,10,11,12。。。我想得到:6,9,12 static int[] tall() { int[] data = database();//recalling an array filled with numbers int j = 0;

我正在使用c#,我有流动问题: 我在之前减速了高度变量,因为循环ant表示循环中不存在

在代码的这一部分中,我希望程序存储除第一个元素之外的“data”数组的所有第三个元素,因此如果“data”数组如下所示:1,2,3,4,5,6,7,8,9,10,11,12。。。我想得到:6,9,12

static int[] tall()
{
    int[] data = database();//recalling an array filled with numbers
    int j = 0;
    int[] height;
    for (int i = 6; i < data.Length; )
    {
        i = i + 3;
        j++;
        height[j] = data[i];//Use of unassigned local variable 'height'
    }
    return height;
}
static int[]tall()
{
int[]data=database();//调用充满数字的数组
int j=0;
int[]高度;
对于(int i=6;i
编译器会告诉您问题所在。不幸的是,它没有告诉您如何修复它

您需要为
int
数组指定
height
,但首先需要计算其长度。可以通过从长度中减去初始数据点(即6)的索引,将结果除以3,再加1来计算长度。这可以简化为
(长度-3)/3

int[] height = new int[(data.Length-3)/3];
这假设
data.Length
至少为4,否则计数将为负数

您还应该将索引调整移动到赋值后的某个点,或者更好地移动到循环的标题:

// Start i at 5, because array indexes are zero-based.
for (int i = 5; i < data.Length; i+=3, j++) {
    height[j] = data[i];
}
//从5开始i,因为数组索引是从零开始的。
对于(int i=5;i

我不确定周期,但您必须初始化数组,如
int[]height=new int[data.Length]
int[]高度=新的int[data.Length-6]