数组循环的奇怪执行

时间:2014-05-24 20:02:33

标签: java

遇到此代码的确切含​​义的麻烦

for (int i = 0; i < 2; i++)
{
primes[4 - i] = primes[i];
} 
我应该在执行代码后找到输出,我得到了一组值。但是不要理解代码背后的机制,不要理解我得到的值。

2 个答案:

答案 0 :(得分:2)

如果primes数组的长度为5个字符,则此循环正在形成回文。循环在i = 2时停止,因此只有两次迭代:

primes[4] = primes[0];  // first iteration
primes[3] = primes[1];  // second iteration

例如,使用“ Hello ”一词,结果将为“ HeleH ”。如果数组长度超过5个字符/对象,它将复制第一个位于第五个位置,第二个位于第三个位置(回文仅为特定情况)。
当然,如果primes的长度小于5,则会失败,因为没有primes[4]

答案 1 :(得分:0)

该循环等同于:

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