黑马程序员技术交流社区
标题:
求指教代码的执行顺序
[打印本页]
作者:
一直很安静
时间:
2013-11-26 12:01
标题:
求指教代码的执行顺序
下面代码的执行顺序是什么样的?
do{
while(strDate[i].compareTo(middle)<0&& i<right)//执行到此时是将符合此while的都执行完i一直加1,还是i加1之后就向下执行,在此运行do while时i再加1?
i++; //找出左边比中间值大的数
while(strDate[j].compareTo(middle)>0&& j>left)
j--; //找出右边比中间值小的数
if(i<=j){ //将左边大的数和右边小的数进行替换
tempDate=strDate[i];
strDate[i]=strDate[j];
strDate[j]=tempDate;
i++;
j--;
}
}while(i<=j);
作者:
帅气的冬瓜
时间:
2013-11-26 12:22
你这个代码,比较另类,学习了。
while(strDate[i].compareTo(middle)<0&& i<right)// i 先赋值,在加 1,和下面的一样
i++; //左边的值大,加”1“继续
while(strDate[j].compareTo(middle)>0&& j>left)
j--; //右边的值小,减“1”,继续
当左边比中间值大的时候,i 的值加1(向右),继续比较,左邻中间值为止,j的执行思路和 i 一样。下面的代码是比较就不用说了。希望能帮到你
作者:
一直很安静
时间:
2013-11-26 14:13
帅气的冬瓜 发表于 2013-11-26 12:22
你这个代码,比较另类,学习了。
while(strDate.compareTo(middle)left)
...
好像有点通了,是不是只要左边比中间小就+1,比中间大的时候就向下运行,下面的while循环是比中间小的就向下运行,然后将这两个数调换位置,然后再次do while循环?
作者:
帅气的冬瓜
时间:
2013-11-26 15:47
对 就是这个意思
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2