我一直在试图解决一个编程问题,并且遇到了一个范围问题。这是问题的一个SCE:嵌套for循环范围
for (int Hole1 = 1; Hole1 < beavers; Hole1++) {
list = exampleList;
for (int t = 0; t < Hole1; t++) {
temp.add(list.get(0));
list.remove(0);
}
for (int p = 0; p < Hole1; p++) {
list.add(temp.get(temp.size() - 1));
temp.remove(temp.size() - 1);
}
exampleList2 = list;
for (int Hole2 = 1; Hole2 < beavers; Hole2++) {
list = exampleList2;
for (int t = 0; t < Hole2; t++) {
temp.add(list.get(0));
list.remove(0);
}
for (int p = 0; p < Hole2; p++) {
list.add(temp.get(temp.size() - 1));
temp.remove(temp.size() - 1);
}
exampleList3 = list;
for (int Hole3 = 1; Hole3 < beavers; Hole3++) {
list = exampleList3;
for (int t = 0; t < Hole3; t++) {
temp.add(list.get(0));
list.remove(0);
}
for (int p = 0; p < Hole3; p++) {
list.add(temp.get(temp.size() - 1));
temp.remove(temp.size() - 1);
}
System.out.println(list.toString() + " " + Hole1 + " " + Hole2 + " " + Hole3);
if (check(list))
System.out.println("match");
}
}
}
我的问题是examplelist3改变了的hole3for loop
每次迭代值,但是从我的理解每个loop
完成它在移动之前的迭代。任何人都知道发生了什么?
编辑*除去SCE和发布的代码,而不是
也许你可以添加你想要实现的?看起来你正在以某种尴尬的方式做一些嵌套的迭代/分配。 – RAnders00
'每个for-loop在继续之前完成它的迭代。“这就是实际发生的事情。 –
嗯,这是我无法破解的比赛中的一个问题。您从5 4 3 2 1列表开始,通过3个“洞”(深度介于1和n-1之间)运行它们。 [问题可以在第5页看到](http://www.progolymp.se/static/arkiv/kval15.pdf)。然后在特定的位置匹配它们并获得钻孔深度。 – AlexVestin