【发布时间】:2019-02-27 13:44:15
【问题描述】:
我正在编写一个嵌套的 for 循环来填充一个多维数组并且遇到了,不一定是问题,而是一个难题。首先,我将解释代码执行我想要执行的操作,即用某些东西完全填充多维数组;现在是数字 1。当我在 for 循环内有一个“print()”函数时,我遇到了难题。清除我在 Unity 中编码 c# 的内容。
static int[,] array;
array = new int[5,5];
for(int x = 0; x < 5; x++){
print("outer: " + x);
for (int y = 0; y < 5; y++){
print("-inner: " + y);
array [x, y] = 1;
}
}
输出是:
outer: 0
-inner: 0
-inner: 1
-inner: 2
-inner: 3
-inner: 4
outer: 1
outer: 2
outer: 3
outer: 4
当在 for 循环之外我直接尝试打印如下内容时,它不会在任何外部之间打印内部:
print("data: " + array[2,3]);
它输出:
data: 1
所以它清楚地使用嵌套的 for 循环填充数组,但它不会在每次在嵌套的 for 循环中迭代时打印出我的字符串。这是有原因的吗?
【问题讨论】:
-
当我将
print替换为Console.WriteLine(并从数组定义中删除static并将所有代码放入Main)时,您的代码对我来说很好。您能否发布一个完整的、最小的示例来重现该问题? -
如果是 Unity 而不是
print尝试使用Debug.Log() -
不是我的代码不行。它做它被创建的目的。它填充一个多维数组。我遇到的问题是为什么它能够填充多维数组但它不会在 y 的每次迭代中重复打印函数。这仅在 Unity 内部。这是我的难题。
-
此外,derHugo,Debug.Log("test") 也只运行一次,并且每次迭代都不会再次运行。 (抱歉重复发布无法编辑我的消息)
标签: c# unity3d nested-loops