Java:增量操作在if块内不起作用
我正在使用Java为冒泡排序编写一个小代码,如下所示 包raja.programming.bubblesort; 公共班机{ 公共静态无效字符串[]args{ //在这里编写代码 //int[]intArray={5,-10,22,43,1,17}; int[]intArray={20,35,-15,7,55,1,-22}; 对于int unsortedArrayIndex=intArray.length-1;unsortedArrayIndex>0;unsortedArrayIndex-{ 对于int index=0;indexJava:增量操作在if块内不起作用,java,Java,我正在使用Java为冒泡排序编写一个小代码,如下所示 包raja.programming.bubblesort; 公共班机{ 公共静态无效字符串[]args{ //在这里编写代码 //int[]intArray={5,-10,22,43,1,17}; int[]intArray={20,35,-15,7,55,1,-22}; 对于int unsortedArrayIndex=intArray.length-1;unsortedArrayIndex>0;unsortedArrayIndex-{ 对
谢谢。我想原因是。例如,如果你使用索引i,并在循环中递增它,你将跳转下一次迭代。i++等于i=i+1,但i+1不等于i=i+1当你在使用索引+1引用数组中的位置时,你正在使用索引进行迭代,而index`变量的值不是他被激怒了 但是如果您使用index++或++index,那么在该迭代中将index变量的值增加1,并且将跳过一个索引。由于同样的原因,在这种情况下,您得到的输出数组是未排序的。当您使用index+1时,您的代码会比较位置索引处的元素和位置索引处的元素离子指数+1,循环在循环内指令的末尾加1 但是如果您使用++i或i++的话,您的代码也会做同样的事情,但是您使用的索引会跳2,即for循环的增量和您所做的增量 如果您使用i++它将不起作用,因为这将递增i,并在递增之前返回i的上一个值,因此就像您将元素与自身进行比较一样 但是如果你使用++i,它会增加i的值并返回增加的值。但是在两种方式中,在一个循环中,你都会增加i两次。如果你真的想使用这两种方式中的任何一种,你需要删除for循环,使用while循环并使用++i快速猜测:索引+1会被计算并且没有副作用;+++或i++会更改i、 如果这没有帮助,请澄清你不工作的意思。