int a1=15; int a2=27; int a3=9;
方法1(思路清晰型)
if(a1>a2){
if(a1>a3){
if(a2>a3)
System.out.println("最二大值为: "+a2);
else
System.out.println("最二大值为: "+a3);
}
else{
System.out.println("最二大值为: "+a1);
}
}else if(a2>a3){
if(a1>a3)
System.out.println("最二大值为: "+a1);
else
System.out.println("最二大值为: "+a3);
}
else{
System.out.println("最2值为: "+a2);
}
if(a1>a3){
if(a2>a3)
System.out.println("最二大值为: "+a2);
else
System.out.println("最二大值为: "+a3);
}
else{
System.out.println("最二大值为: "+a1);
}
}else if(a2>a3){
if(a1>a3)
System.out.println("最二大值为: "+a1);
else
System.out.println("最二大值为: "+a3);
}
else{
System.out.println("最2值为: "+a2);
}
方法2(三元运算)
int maxdd=a1>a2?a1:a2; //比较a1与a2中的最大值并赋值给maxdd
int mindd=a1<=a2?a1:a2; //比较
a1与a2中的最小值
并赋值给mindd
int max=maxdd>a3?maxdd:a3; //比较maxdd与a3的最大值 赋值给max,此时的max即为三者中的最大值
int mind=maxdd<=a3?maxdd:a3; //比较maxdd与a3的最小值 赋值给mind
int second=mindd>mind?mindd:mind; //比较mindd与mind的最大值 赋值给second,此时的second即为第二大值
int max=maxdd>a3?maxdd:a3; //比较maxdd与a3的最大值 赋值给max,此时的max即为三者中的最大值
int mind=maxdd<=a3?maxdd:a3; //比较maxdd与a3的最小值 赋值给mind
int second=mindd>mind?mindd:mind; //比较mindd与mind的最大值 赋值给second,此时的second即为第二大值
int min=mindd<=mind?mindd:mind; //比较mindd与mind的最小值赋值给min,此时的min即为三者中的最小值
System.out.println("第二大数为:"+second);

方法3(冒泡排序)
if(a1>a2){ //冒泡排序法
//将a1赋值给a2 两个变量相互赋值不涉及第三方变量
a1=a1+a2; //15+27
a2=a1-a2; //15+27-27
a1=a1-a2; //15+27-15
} if( a2>a3){
//将 a2赋值给 a3
a2= a2+ a3; //27+9
a3= a2- a3; //27+9-9
a2= a2- a3; //27+9-27
} if(a1>a2){
System.out.print(a1);
}else
System.out.print(a2);
//将a1赋值给a2 两个变量相互赋值不涉及第三方变量
a1=a1+a2; //15+27
a2=a1-a2; //15+27-27
a1=a1-a2; //15+27-15
} if( a2>a3){
//将 a2赋值给 a3
a2= a2+ a3; //27+9
a3= a2- a3; //27+9-9
a2= a2- a3; //27+9-27
} if(a1>a2){
System.out.print(a1);
}else
System.out.print(a2);
加油!
