Java 数组循环的奇异执行

Java 数组循环的奇异执行,java,Java,对该代码的确切含义有疑问 for (int i = 0; i < 2; i++) { primes[4 - i] = primes[i]; } for(int i=0;i

对该代码的确切含义有疑问

for (int i = 0; i < 2; i++)
{
primes[4 - i] = primes[i];
} 
for(int i=0;i<2;i++)
{
素数[4-i]=素数[i];
} 

我应该在代码执行后找到输出,我得到了一组值。但是我不理解代码背后的机制,也不理解我得到的值。

如果你的
primes
数组有5个字符长,那么这个循环就是回文。循环在i=2时停止,因此只有两次迭代:

primes[4] = primes[0];  // first iteration
primes[3] = primes[1];  // second iteration
例如,使用“Hello”一词,结果将是“HeleH”。如果数组长度超过5个字符/对象,它将在第五个位置复制第一个字符/对象,在第三个位置复制第二个字符/对象(回文只是一种特殊情况)。

当然,如果
primes
的长度小于5,它将失败,因为没有
primes[4]

循环与此等价:

primes[4] = primes[0];
primes[3] = primes[1];

阅读有关的教程。你也可以拿一张纸,看看在循环的每次迭代中执行了哪些操作。你也可以打印中间结果,这将澄清你在寻找什么。哦,好的。如果数组是5个字符长的,那么它将复制第一个和第二个位置