Java 如何使for循环中的数组在每次运行时实际更改for循环的大小?

Java 如何使for循环中的数组在每次运行时实际更改for循环的大小?,java,Java,我希望for循环的长度是一个不断变化的数字。我可以这样做吗 我什么都没试过 for (int i=0; i < colsAdd[i] ; i++){ System.out.print(" 0.0"); } for(inti=0;i

我希望for循环的长度是一个不断变化的数字。我可以这样做吗

我什么都没试过

for (int i=0; i < colsAdd[i] ; i++){            
   System.out.print("     0.0");    
}
for(inti=0;i

实际上,
colsAdd[0]
是唯一的尺寸。

我不确定我是否完全理解您的要求,但您似乎想知道您可以将什么放入for循环的不同部分,以及它们的运行顺序

如果我们更改您粘贴在上面的代码以匹配下图,规则将变得明显

for (initialization; condition; updateCounter){            
   codeInsideLoop    
}

任何代码都可以进入for循环的这些部分,它们甚至可以留空!例如,以下代码相当于while(true)循环

或者这个for循环在循环内部递增

for (int i=0; i < 10;){            
   System.out.print("This will print 10 times");  
   i++;
}

现在,仅仅因为你能做这些事情并不意味着你应该做!通常,您希望保持循环的结构简单,以便每个人都能理解您的目标

我不确定我是否完全理解您的要求,但您似乎想知道,在for循环的不同部分中允许输入什么,以及它们的运行顺序

如果我们更改您粘贴在上面的代码以匹配下图,规则将变得明显

for (initialization; condition; updateCounter){            
   codeInsideLoop    
}

任何代码都可以进入for循环的这些部分,它们甚至可以留空!例如,以下代码相当于while(true)循环

或者这个for循环在循环内部递增

for (int i=0; i < 10;){            
   System.out.print("This will print 10 times");  
   i++;
}

现在,仅仅因为你能做这些事情并不意味着你应该做!通常,您希望保持循环的结构简单,以便每个人都能理解您的目标

“我什么都没试过”为什么不呢?你说的长度是什么意思?正如在
i
部分中一样,您是否有一个实际的用例……您想在这里完成的事情?如果你问colsAdd[i]是否可以在循环过程中改变……当然可以。每次通过循环时都会重新计算该表达式,以确定循环是否应终止。测试声明可以是任何东西。-事实上,大多数看起来像这样的for循环都有一个恒定的“长度”,正在测试它,它永远不会改变,没有理由它不能……就像在您的示例中一样。然而,我无法想象,你所展示的逻辑是如何实用的。但是可能。如果colsAdd[0]是colsAdd数组中唯一的值,并且它的值大于0,那么在循环的第一次迭代之后,您将得到一个数组索引越界错误或类似的错误,因为您将尝试解决colsAdd[1],它不存在。“我没有真正尝试过任何东西”为什么不?你说的长度是什么意思?正如在
i
部分中一样,您是否有一个实际的用例……您想在这里完成的事情?如果你问colsAdd[i]是否可以在循环过程中改变……当然可以。每次通过循环时都会重新计算该表达式,以确定循环是否应终止。测试声明可以是任何东西。-事实上,大多数看起来像这样的for循环都有一个恒定的“长度”,正在测试它,它永远不会改变,没有理由它不能……就像在您的示例中一样。然而,我无法想象,你所展示的逻辑是如何实用的。但是可能。如果colsAdd[0]是colsAdd数组中唯一的值,并且它的值大于0,那么在循环的第一次迭代后,您将得到一个数组索引越界错误或类似的错误,因为您将尝试解决colsAdd[1],它不存在。很好!我+1希望这非常好地展示for语句的功能。我真的很好奇这是否会对OP有所帮助,或者他缺乏理解是否比这更基本。无论哪种方式,都可能有人会遇到这种情况并从中得到帮助。谢谢!我希望这对他有帮助,但是没有更多的信息就很难说了。太好了!我+1希望这非常好地展示for语句的功能。我真的很好奇这是否会对OP有所帮助,或者他缺乏理解是否比这更基本。无论哪种方式,都可能有人会遇到这种情况并从中得到帮助。谢谢!我希望这对他有帮助,但是没有更多的信息就很难说了。