dataValues[0][0] = dataValues_all[2];
dataValues[0][1] = dataValues_all[6];
dataValues[0][2] = dataValues_all[10];
dataValues[0][3] = dataValues_all[14];
dataValues[0][4] = dataValues_all[18];
dataValues[0][5] = dataValues_all[22];
dataValues[0][6] = dataValues_all[26];
dataValues[0][7] = dataValues_all[30];
dataValues[0][8] = dataValues_all[34];
dataValues[0][9] = dataValues_all[38];
dataValues[1][0] = dataValues_all[42];
dataValues[1][1] = dataValues_all[46];
dataValues[1][2] = dataValues_all[50];
dataValues[1][3] = dataValues_all[54];
dataValues[1][4] = dataValues_all[58];
dataValues[1][5] = dataValues_all[62];
dataValues[1][6] = dataValues_all[66];
dataValues[1][7] = dataValues_all[70];
dataValues[1][8] = dataValues_all[74];
dataValues[1][9] = dataValues_all[78];
dataValues[2][0] = dataValues_all[82];
dataValues[2][1] = dataValues_all[86];
dataValues[2][2] = dataValues_all[90];
dataValues[2][3] = dataValues_all[94];
dataValues[2][4] = dataValues_all[98];
dataValues[2][5] = dataValues_all[102];
dataValues[2][6] = dataValues_all[106];
dataValues[2][7] = dataValues_all[110];
dataValues[2][8] = dataValues_all[114];
dataValues[2][9] = dataValues_all[118];
我尝试了这个,但它没有用
/*for(int k=0; k<3; k++){
for(int u=0; u<10;u++){
for(int t=2; t<120; t=t+4){
dataValues[k][u] = dataValues_all[t]; }}}*/
答案 0 :(得分:3)
for (int k = 0; k < 3; k++) {
for (int u = 0; u < 10; u++) {
dataValues[k][u] = dataValues_all[2 + (k * 40) + (u * 4)];
}
}
答案 1 :(得分:2)
int t = 2;
for (int k = 0; k < 3; k++)
for (int u = 0; u < 10; u++) {
dataValues[k][u] = dataValues_all[t];
t = t + 4;
}
它能解决你的问题吗?
答案 2 :(得分:2)
一个循环也可以:
for (int i = 0; i < 30; i++)
dataValues[i / 10][i%10] = dataValues_all[i*4+2];
一点澄清:
i/3
是整数除以3,因此它生成0,0,0,1,1,1,2,2,2,...
i%3
返回由除以3得到的休息,因此它给出:0,1,2,0,1,2,0,1,2
答案 3 :(得分:1)
for(int k=0; k<3; k++)
for(int u=0; u<10;u++)
dataValues[k][u] = dataValues_all[k*40 + u*4 + 2];
答案 4 :(得分:1)
如果这样的嵌套循环不能正常工作,那么在调试时你可以做的最好的事情就是打印掉循环变量的值,看看它们是否符合你的期望。例如:
for(int k=0; k<3; k++) {
for(int u=0; u<10;u++) {
for(int t=2; t<120; t=t+4) {
dataValues[k][u] = dataValues_all[t];
System.out.println("k = " + k + ", u = " + u + ", t = " + t);
}
}
}
看看它做了什么。这几乎肯定会告诉你问题所在。
或者,使用调试器并逐步观察这些变量。
编辑:其他人给你的答案看起来正确;我的目的是描述如何在将来调试类似的情况,而不仅仅是给你一个特定的问题答案。我希望你觉得它很有用!答案 5 :(得分:0)
为了使您的解决方案能够工作,在单个循环中必须增加两个变量(u和t)。您正在为每个循环执行单独的循环,这会导致迭代看起来像这样。
dataValues[0][0] = dataValues_all[2];
dataValues[0][0] = dataValues_all[6];
dataValues[0][0] = dataValues_all[10];
dataValues[0][0] = dataValues_all[14];
dataValues[0][0] = dataValues_all[18];
dataValues[0][0] = dataValues_all[22];
上面发布的代码(由Marc-Francois提供)看起来是解决问题的正确方法。