Java 从数组列表计算平均值
我得到一个错误Java 从数组列表计算平均值,java,arrays,average,Java,Arrays,Average,我得到一个错误 sum = sum + arr[i]; // "i cannot be resolved to a variable" 为什么会这样? 前面声明了“i”,我试图使用值arr[i]从名为numbers.txt的文本文件中查找并平均arraylist 公共类统计信息{ 公共静态void main(字符串[]args){ int[]number=readFiles(“./bin/q1/numbers.txt”); System.out.println(Arrays.toString(
sum = sum + arr[i]; // "i cannot be resolved to a variable"
为什么会这样?前面声明了“i”,我试图使用值
arr[i]
从名为numbers.txt的文本文件中查找并平均arraylist
公共类统计信息{
公共静态void main(字符串[]args){
int[]number=readFiles(“./bin/q1/numbers.txt”);
System.out.println(Arrays.toString(numbers));
}
私有静态int[]读取文件(字符串文件){
试一试{
文件f=新文件(文件);
扫描器s=新扫描器(f);
int ctr=0;
//计算numbers.txt中的整数数
而(s.hasnetint()){
ctr++;
s、 nextInt();
}
int[]arr=新的int[ctr];
扫描仪s1=新扫描仪(f);
//从文件中读取整数并将其分配给数组
对于(int i=0;i
您遇到的问题是,您声明的i
仅存在于前面的for循环中
//从文件中读取整数并将其分配给数组
对于(int i=0;i
i
将在for loop
之后销毁,这意味着您无法再访问i
,您可以在中找到更多详细信息
要解决您的问题,您有许多选择,例如:
为循环创建了另一个
//从文件中读取整数并将其分配给数组
对于(int i=0;i
包括在前面的for循环中
//从文件中读取整数并将其分配给数组
整数和=0;
对于(int i=0;i
请添加您正在编码的语言。此外,您还没有声明i
,因为您提到的i
只存在于for循环中
,它将在for循环后被销毁。取决于您尝试执行的操作,您可以为循环声明另一个,声明另一个i
,或者将您的代码包含在前面的for loop
中,并用花括号括起来。java编码以及将前面的代码包含在for loop中是什么意思?谢谢先生!我会搞砸的,但这样更有意义!为什么当我在try-catch中添加另一个if语句时,我在控制台中得到returnnull?
public class Statistics {
public static void main(String[] args) {
int [] numbers = readFiles("./bin/q1/numbers.txt");
System.out.println(Arrays.toString(numbers));
}
private static int[] readFiles(String file) {
try {
File f = new File(file);
Scanner s = new Scanner(f);
int ctr = 0;
//counting number of integers in numbers.txt
while (s.hasNextInt()) {
ctr++;
s.nextInt();
}
int [] arr = new int[ctr];
Scanner s1 = new Scanner(f);
//reads integers from file and assigns it to array
for (int i = 0; i < arr.length; i ++)
arr[i] = s1.nextInt();
int sum = 0;
sum = sum + arr[i];
float average = sum / (float) arr.length;
System.out.println("average of array is: " + average + "\n");
System.out.println("length of array is: " + arr.length + " integers \n");
return arr;
}
catch (Exception e) {
return null;
}
}
};