为了账号安全,请及时绑定邮箱和手机立即绑定

求大神解答,感激不尽

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]);

}

}


}


正在回答

代码语言

2 回答

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

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

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

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

0 回复 有任何疑惑可以回复我~
#1

皓婆子 提问者

非常感谢!厉害厉害,佩服
2015-03-10 回复 有任何疑惑可以回复我~

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);
0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

求大神解答,感激不尽

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信