【发布时间】:2014-10-07 16:00:10
【问题描述】:
我正在尝试遍历以下伪代码设置,但我似乎只能使用 for 循环和区分大小写。有没有简单的方法来解决这些问题?
编辑:更清楚地说,我有两个二维双坐标数组,因此我有 PunkteX[i][m] 和 PunkteY[i][m]。这两个数组的长度总是相同的,但整数 i 和 m 是可变的。我想遍历它们,以便将它们组合成一个新的 Point2D[p] 类型的二维数组。 Point2D 数组的长度将由 i 和 m 决定。
int i = punkteX.length; // same as punkteY.length;
int m = punkteX[0].length; // same as punkteY[0].length;
Point2D[] array = new Point2D[i*m];
array[0] = (punkteX[0][m], punkteY[0][m]);
array[1] = (punkteX[1][m], punkteY[1][m]);
array[2] = (punkteX[2][m], punkteY[2][m]);
.
.
array[i-1] = (punkteX[i-1][m], punkteY[i-1][m]);
array[i] = (punkteX[i][m], punkteY[i][m]);
array[i+1] = (punkteX[0][m-1], punkteY[0][m-1]);
array[i+2] = (punkteX[1][m-1], punkteY[1][m-1]);
array[i+3] = (punkteX[2][m-1], punkteY[2][m-1]);
.
.
array[p-1] = (punkteX[i-1][0], punkteY[i-1][0]);
array[p] = (punkteX[i][0], punkteY[i][0]);
为了完整起见,我的尝试似乎只适用于 i = 3,如下所示:
for (int p = 0; p < array.length; ++p) {
for (int m = 0; m < mtimes; ++m) { // mtimes = column length of PointX and PointY Arrays
Point2D[] interimarray = new Point2D[n]; // Global var n = i
for (int i = 0; i < interimarray.length; ++i) {
p = (p+i);
if (i == (interimarray.length-1)) { p -= 1; }
if (p < (array.length)) {
array[p] = new Point2D(xArray[i][(mtimes-m-1)], yArray[i][(mtimes-m-1)]);}
if ((p!= 0) && (i==(n-1))) { p += 1; }}}}
【问题讨论】:
-
你最好在这个伪代码中解释你想要实现的目标 - 你想要做什么并不明显。
-
是的,这很令人困惑。我不知道你想在这里做什么。您是否有一个数据结构并且您正在尝试浏览它?或者您是否正在尝试创建一个数据结构并在其中导航?
-
还应该补充一下,它有被关闭的风险,因为它是多么的不清楚。
-
所以你想生成行列数可变的二维数组之类的?
-
我已经添加了一些规范,现在这个问题更有意义了吗?