是。这可以通过递归编程来执行。
我假设您不喜欢在源代码中写下这些嵌套的代码-如您的示例所示,因为这确实是丑陋的编程-如评论员所解释。
下面的代码(类似于Java的伪代码)对此进行了说明。我假设嵌套的深度固定。然后,您实际上想循环遍历尺寸深度的整数向量。
int[] length = new int[depth];int[] counters = new int[depth];
数组
counters必须初始化为0(
Arrays.fill(counters,0))。该数组
length必须初始化为各个for循环的迭代次数。
我假设您喜欢在内部循环中执行某些操作。我将其称为
performOperation(int[] counters);
-它取决于多维计数器,即外部for的计数器。
然后您可以通过调用来运行嵌套的for循环
nestedLoopOperation(counters, length, 0);
哪里
void nestedLoopOperation(int[] counters, int[] length, int level) { if(level == counters.length) performOperation(counters); else { for (counters[level] = 0; counters[level] < length[level]; counters[level]++) { nestedLoopOperation(counters, length, level + 1); } }}在您的情况下,您的System.out.println()将是
performOperation(int[] counters) { String counterAsString = ""; for (int level = 0; level < counters.length; level++) { counterAsString = counterAsString + counters[level]; if (level < counters.length - 1) counterAsString = counterAsString + ","; } System.out.println(counterAsString);}


