poi*_*sya 1 c# arrays recursion
我正在尝试使用递归写入数组的内容。我的代码如下所示:
static void Foo(int[] myArray)
{
int i = 0;
Console.WriteLine(myArray[i]);
if (i < myArray.Length)
return;
i++;
Foo(myArray);
}
static void Main(string[] args)
{
int[] myArray = {4,6,78,9,0};
Foo(myArray);
}
Run Code Online (Sandbox Code Playgroud)
但是,当我执行应用程序时,而不是预期的输出:
4
6
78
9
0
Run Code Online (Sandbox Code Playgroud)
它只打印第一个元素:
4
Run Code Online (Sandbox Code Playgroud)
我希望收到能帮助我找到正确解决方案的建议
小智 5
该i变量不维护不同函数调用之间的状态。
相反,您需要将其i作为参数传递给函数并通过递归调用来更新它。
static void Foo(int[] arr, int i) {
if (i >= arr.Length) return;
Console.WriteLine(arr[i]);
Foo(arr, i + 1);
}
Run Code Online (Sandbox Code Playgroud)
然后致电Main:
Foo(myArray, 0);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
107 次 |
| 最近记录: |