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,我不明白,第三个条件句不是不成立吗?我想不明白有谁可以帮助我一下,我是初学,请见谅,在这里我先谢谢大家
{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,我不明白,第三个条件句不是不成立吗?我想不明白有谁可以帮助我一下,我是初学,请见谅,在这里我先谢谢大家
再判断第二个条件这时a<b,故第二个条件不成立
第三个条件这样判断就不用我说了吧
你要注意你这里声明的是全局变量。
楼主你去测试一下这个代码就知道为什么了.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);
}
}
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
}
}
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
}
}