黑马程序员技术交流社区

标题: 求指教代码的执行顺序 [打印本页]

作者: 一直很安静    时间: 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