皓婆子
2015-03-10 11:44
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]);
}
}
}
第一个问题:为什么scores放在getscores中不行?
答:是因为getscores()这个方法中的参数就是int类型的数组,并且名字为scores。那么在Java中是在定义之后的变量是不允许再次定义的。所以不能在getscores()这个方法中,除非你换个名字。
第二个问题:为什么在main函数中getscores括号中不能写scores[i]?
答:是因为你在定义getscores方法时,参数的类型为int类型的数组,而scores[i]是数组中的一个变量,所以是不可以的,另一个原因是因为在main方法中没有i这个变量,所以会报错
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);
Java入门第一季(IDEA工具)升级版
1165172 学习 · 17581 问题
相似问题