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