public class Example3
{public static void main (String args[])
{int a=9,b=5,c=7,t;
if (a>b)
{t=a;a=b;b=t;  //t=9,a=5,b=9    只打第一个条件结果是a=5b=9c=7
}
if (a>c)
{t=a;a=c;c=t;  //t=9,a=7,c=9    只打第二个条件结果是a=5b=9c=7,这个不是应该是a=7b=5c=9吗,
}
if (b>c)
{t=b;b=c;c=t;
}
System.out.println("a="+a+"b="+b+"c="+c);
}
}这段代码为什么打出来是a=5b=7c=9,我不明白,第三个条件句不是不成立吗?我想不明白有谁可以帮助我一下,我是初学,请见谅,在这里我先谢谢大家

解决方案 »

  1.   

    第一个条件执行之后a和b的值发生了变化a=5b=9c=7 
    再判断第二个条件这时a<b,故第二个条件不成立
    第三个条件这样判断就不用我说了吧
    你要注意你这里声明的是全局变量。
      

  2.   


    楼主你去测试一下这个代码就知道为什么了.public class Example3 
    {
    public static void main (String args[]) 
    {
    int a=9,b=5,c=7,t; 
    if (a>b) 
    {
    t=a;a=b;b=t;  //t=9,a=5,b=9    只打第一个条件结果是a=5b=9c=7 

    System.out.println("a="+a+",b="+b+",c="+c); 
    if (a>c) 
    {
    t=a;a=c;c=t;  //t=9,a=7,c=9    只打第二个条件结果是a=5b=9c=7,这个不是应该是a=7b=5c=9吗, 

    System.out.println("a="+a+",b="+b+",c="+c); 
    if (b>c) 
    {
    t=b;b=c;c=t; 

    System.out.println("a="+a+",b="+b+",c="+c); 

    }
      

  3.   

    首先这段代码是从小到大排序代码
    public class Example3 {
        public static void main (String args[]) {
            int a=9,b=5,c=7,t; 
            if (a>b) {
                t=a;a=b;b=t;  //t=9,a=5,b=9    只打第一个条件结果是a=5b=9c=7 
            }                 //这时候a=5,b=9,c=7
            if (a>c) {        //由于这时候a<c,所以跳过,不执行
                t=a;a=c;c=t; 
            } 
            if (b>c) {        //b>c(9>7)
                t=b;b=c;c=t;  //这时候a=5,b=7,c=9
            } 
            System.out.println("a="+a+"b="+b+"c="+c);    //所以最后结果是a=5,b=7,c=9
        } 
    }
      

  4.   

    public class Example3 {
        public static void main (String args[]) {
            int a=9,b=5,c=7,t; 
            if (a>b) {
                t=a;a=b;b=t;  //a>b成立,所以赋值,a=5,b=9,c=7,t=9
            }                
            if (a>c) {        //此时(a=5)<(c=7),所以跳过,不执行
                t=a;a=c;c=t; 
            } 
            if (b>c) {        //(b=9)>(c=7) 
                t=b;b=c;c=t;  //再赋值a=5,b=7,c=9,t=9
            } 
            System.out.println("a="+a+"b="+b+"c="+c);    //最后结果是a=5,b=7,c=9
        } 
    }