本人是初学者,正在自学java。看书上有一个按三个数的大小排序的题。书上给的答案如下:public class OrderThree {
public static void main (String [] args) {
int x=6,y=2,z=9,t;
if (x>y) {
t=x;x=y;y=t;
}
if(x>z) {
t=x;x=z;z=t;
}
if(y>z) {
t=y;y=z;z=t;
}
System.out.println(x+","+y+","+z);

}
}但是我始终没明白这个是怎么求出来的。请大家给我解答一下·麻烦了~

解决方案 »

  1.   

    简单的3个数依次互相比较大小,再向变量赋值。方便的话debug一下吧
      

  2.   


    if (x>y) {
    t=x;x=y;y=t;
    }//執行后x=2,y=6
    System.out.println(x+","+y+","+z);//執行字符串連接操作 6,2,9
      

  3.   

    if (x>y) {
    t=x;x=y;y=t;
    }
    if(x>z) {
    t=x;x=z;z=t;
    }
    if(y>z) {
    t=y;y=z;z=t;
    就是这一段 他这个等于 怎么最后就能执行处 大小呢
      

  4.   


    if (x>y) {
    t=x;x=y;y=t;
    }//執行后x=2,y=6
    System.out.println(x+","+y+","+z);//執行字符串連接操作 2,6,9
      

  5.   


    public class OrderThree {
      public static void main (String [] args) {
        int x=6,y=2,z=9,t;
        //如果x>y,两值互换,t相当一个临时变量。交换之后,x<y。
        //xyz两两比较之后,得到x<y<z,实现从小到大的排序。
        if (x>y) {
          t=x;      
          x=y;
          y=t;
        }
        if(x>z) {
          t=x;
          x=z;
          z=t;
        }
        if(y>z) {
          t=y;
          y=z;
          z=t;
        }
        System.out.println(x+","+y+","+z);
      }
    }
      

  6.   

    if (x>y) {
    t=x;x=y;y=t;
    }
    这个的意思如果x比y大,那么交换,y.
    比如x为7,y为5,经过这个处理后,x为5,y为7。
    再说这个=不是判断相等的意思,是赋值的意思。
      

  7.   

    t相当于临时变量,要把xy值互换,就得利用一个临时变量存放x值,再把x值赋给y然后t的值再赋给y
      

  8.   

    楼主被t=x;x=y;y=t;这个搞糊涂了吧
      

  9.   

    t相当于临时变量,比如要把xy值互换,就得利用一个临时变量存放x值,再把x值赋给y然后t的值再赋给y
    然后比较三次就可以让三个数按序排列了