日期:2014-05-20  浏览次数:20601 次

JAVA遇到方法封装问题
for(i=0;i<j;i++){//身高比较,i是用户输入的选项,J是比较人数
for(int s=0;s<j-i-1;s++)
if(heigh[s]<heigh[s+1]){
int temp=heigh[s];
heigh[s]=heigh[s+1];
heigh[s+1]=temp;

}
}
for(int s=0;s<j;s++){//比较结果用姓名+成绩显示的方法
   if(heigh[0]==p[s].getHeight()){
   System.out.println("恭喜 "+p[s].getName()+" 在比较身高的项目中以 "+p[s].getHeight()+" CM获得了 冠军!");
    break;
   }
   }
for(int s=0;s<j;s++){
if(heigh[1]==p[s].getHeight()){
System.out.println("恭喜 "+p[s].getName()+" 在比较身高的项目中以 "+p[s].getHeight()+" CM获得了 亚军!");
break;
}
}
for(int s=0;s<j;s++){
if(heigh[2]==p[s].getHeight()){
System.out.println("恭喜 "+p[s].getName()+" 在比较身高的项目中以 "+p[s].getHeight()+" CM获得了 季军!");
break;
}
}

求大神告诉我怎么把这个变为一个方法,然后需要的时候直接调用就可以了,就是不知道怎么把数组传进去。。。同时想问,我这个判断方法,如果两人输入相同的身高则会输出错误,怎么回避呢?谢谢
java

------解决方案--------------------
如果我做的话我会进行一个排序,或者直接用一个数组求前三名就好了。

public User[] getMaxHeight(List<User> list){
//根据你的方法求出前三

return maxuser;
}
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

你究竟是想实现什么功能呢?参数是什么?返回类型是什么呢?好好想一想!

就是把一群人的身高拿出来比较大小,选出前3名啊。

传进去两个list,一个放所有对象,另外一个空,里面的操作就是选出前三名并插入到空的list中,返回这个list就可以了!

求给点关键代码。。。我还没学到list.
苦逼学生。。。
没学这个的话,那你就建立两个数组吧,一个放学生姓名,另外一个放学生身高,注意里面的数组下标值要对应!
姑且为:student[],height[]吧!
1,找出前三的身高值:
      float a[3],作为返回数值存放的数组
      建立方法: public float [] comparation(float height[],float a[]){
                   //操作方法,a[]里面存放3个最高身高的数值
                return a;
           }
2,在height里面找出和a里面数值相对应的下标值,这样就知道student[]中的下标值了,然后输出就可以了