为什么for循环被跳过?

时间:2016-02-06 10:00:33

标签: java

我想以特定的顺序(从最小到最大)向数组中添加产品,但由于某种原因,代码会跳过执行移位部分的for循环。我试图制造条件" products.length-2"但它仍然无法运作。

{{1}}

1 个答案:

答案 0 :(得分:3)

让我们考虑一下你的products数组包含2个元素。 内部for循环的第一次迭代:

for(int j=products.length-1; j<=0; j--){

将评估为:

for(int j = (2) - 1; j<=0; j--){

正如您所看到的,您的终止条件是问题的根源。 而且,由于您向后计数,它应该是j >= 0,而不是j <= 0

for(int j=products.length-1; j >= 0; j--){ // j >= 0
    products[j+1]= products[j];
}