i=0;
j=s.length-1;
while(i<=j){
  i++;
  j--;
}

解决方案 »

  1.   

    初始条件: i=0,j=s.length-1
    判断条件:;i<=j;
    判断成立后的循环执行: i++,j--
      

  2.   

    Lz这段代码应该是类似这样的
    int i,j;
    int[] s = new int[15];
    for ( i=0,j=s.length-1;i<=j; i++,j--)
    {

    }意思就是说,i初始化为0,j的值小于数组的长度
    其实这个形象点说,比如一个15cm的尺子的刻度吧,现在这个i就是从0前进,j就是从15往回退,条件是,只要i和j还有距离 那就走,直到两个元素重合。
    public static int halfSearch(int[] arr,int key)
    {
    int min = 0,max = arr.length-1,mid; while(min<=max)
    {
    mid = (max+min)>>1; if(key>arr[mid])
    min = mid + 1;
    else if(key<arr[mid])
    max = mid - 1;
    else
    return mid;
    }
    return -1;
    }有点类似这个吧,折半查找,Lz体会体会  其实条件就是 只要咱们俩还有距离,那就继续取中查找
      

  3.   

    谢谢您的解答,这个语句用到倒序排序上了。
    for ( i=0,j=s.length-1;i<=j; i++,j--){
    char temp=s[i];
    s[i]=s[j];
    s[j]=temp;
    }   
    System.out.print(s);
    为什么这么写呢? for ( j=s.length-1;j>0; j--)
    System.out.print(s); 这个也可以实现倒序输出
      

  4.   

    for ( i=0,j=s.length-1;i<=j; i++,j--) 是说i初始值为0,j初始值为s的长度减1,且每次循环i的步常是加1,j是每次减1,当它们符合i<=j条件是就执行for中的代码,其实它只是比平时多了一个j而已,它就好比int j=s.length-1 ;
    for ( i=0,;i<=j; i++) {
    j--;
      

  5.   

    for ( i=0,j=s.length-1;i<=j; i++,j--)i为初值,而那个s.length-1为s数组的长度,i<=j是循环判断语句,如果i<=j那么久继续执行for语句下面的语句,不满足就跳出来不执行for语句下面的程序;然后每次循环都是使得i自动交1,而j自动减1。
      

  6.   

    谢谢您的解答,这个语句用到倒序排序上了。
    for ( i=0,j=s.length-1;i<=j; i++,j--){
    char temp=s[i];
    s[i]=s[j];
    s[j]=temp;
    }   
    System.out.print(s);
    为什么这么写呢? for ( j=s.length-1;j>0; j--)
    System.out.print(s); 这个也可以实现倒序输出

    上面那个多此一举了吧。先把数组内的顺序给倒序了。数组发生改变了。然后再输出。按照下面的方法就是直接倒序输出。数组并没有发生改变~
      

  7.   

    就是做了优化的for循环  不用每次计算length