问答详情
源自:7-1 编程练习

求大神解答,感激不尽

public class Java8_1 {

public static void main(String[]args){

System.out.println("前3名成绩为");

Java8_1 hello=new Java8_1();

         hello.getscores(scores);//还有括号里的参数为什么不能写成scores[i];

    

}

public void getscores(int[] scores){

int[] scores={89,-23,64,91,119,52,73};//为什么定义数组放在这里就出错了啊?难道一定要开头就定义吗?

Arrays.sort(scores);

int nums=0;

for (int i=scores.length-1;i>0;i--){

if (scores[i]<=0||scores[i]>100){continue;

}nums++;

if (nums>3){

break;

}

System.out.println(scores[i]);

}

}


}


提问者:皓婆子 2015-03-10 11:44

个回答

  • 康振宁
    2015-03-10 12:03:29
    已采纳

    第一个问题:为什么scores放在getscores中不行?

    答:是因为getscores()这个方法中的参数就是int类型的数组,并且名字为scores。那么在Java中是在定义之后的变量是不允许再次定义的。所以不能在getscores()这个方法中,除非你换个名字。

    第二个问题:为什么在main函数中getscores括号中不能写scores[i]?

    答:是因为你在定义getscores方法时,参数的类型为int类型的数组,而scores[i]是数组中的一个变量,所以是不可以的,另一个原因是因为在main方法中没有i这个变量,所以会报错

  • lymo
    2015-03-10 12:17:41

    int[] scores={89,-23,64,91,119,52,73};要定义在开头,因为hello.getscores(scores);调用了,如果像上面这样,该数组就只能在该函数内使用,执行到hello.getscores(scores);的时候会报scores is undefined之类的错误;

    至于 hello.getscores(scores);//还有括号里的参数为什么不能写成scores[i];

    如果你要scores[i],首先你要把int[] scores={89,-23,64,91,119,52,73};定义在开头,然后在定义一个i,不过在这里完全没意义。

    import java.util.Arrays;
    ……//省略没改的代码
    hello.getscores();
    }
    public void getscores(){
    int[] scores={89,-23,64,91,119,52,73};
    Arrays.sort(scores);