Java中i++与++i

在之前笔者感觉对i++和++i还是挺清楚的,但是前几天在看一个教学视频时,其中有一个代码例子,前后分别用的i++和++i,就是笔者上一篇文章中写的快速排序法的代码。

while(l<r)//大的条件是l<r,即左边界要小于右边界
		{
			//内层分隔处理,左右各自处理
			while(array[l]<pivot) {l++;}
			while(array[r]>pivot) {r--;}
			//如果在上面两个循环退出时,l>=r,则表示pivot的左边都比pivot小,右边都比pivot大,此轮排序目的达到,即将array分为两部分
			if(l>=r) break;
			//如果上面条件不成立,则将上面while循环找出的不符合条件的左右元素对调,目的也是向把array分为两部分靠拢
			tempArray = array[l];
			array[l] = array[r];
			array[r] = tempArray;
			//有可能存在array[l] or array[r]正好就是pivot,此时可在对调之后直接越过此元素,此时可以返回顶层while去检查l<r是否为true
			if(array[l]==pivot) {r--;}
			if(array[r]==pivot) {l++;}		
		}


 

这里只截取其中一段,原例子中上面用的l++, r-- ; 下面用的是 --r,++l ; 当时恍惚了一下,这个有区别吗?

我带着疑问去查了些资料,又在此快速排序代码实验了一下,反正我是没看出在这里用l++和++l有什么区别,请各位同仁指教一二。

 

下面写一下我自己对i++和++i简便的理解:

1. ++i 与 i++ 在运算表达式中出现,才会由于前++与后++ 同其他运算符的优先级不同而有区别;

2. 如果++i 与 i++ 作为单独的表达式,即其前后都有";", 或者单独作为循环体/分支执行语句, 那在这个语句执行过后,i 值都是一样的,没有区别;

 

语句可能不够严谨,仅表达这个意思;个人拙见,还请不吝赐教!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值