以下是我目前的内容:
final int[][] myArray =
{
{ 1, 2, 5, 4 },
{ 4, 3, 2, 1 },
{ 5, 6, 7, 8 },
{ 8, 7, 6, 5 },
};
PrintArray(myArray);
Analysis(myArray);
}
public static void Analysis(int[][] myArray)
{
for (int i = 0; i < myArray.length; i++)
{
int sum = sum + myArray[i];
}
System.out.println(sum);
}
public static void PrintArray(final int[][] myArray)
{
for (int i = 0; i < myArray.length; i++)
{
for (int j = 0; j < myArray[i].length; j++)
{
System.out.print(myArray[i][j] + " ");
}
System.out.println();
}
在求和部分,"对于参数类型int, int[],操作符+是未定义的"。我不知道为什么会这样。
我将使用for-each
循环,您需要在循环之前声明sum
(因此它是可见的)。Java命名约定建议以小写字母开头(您的方法看起来像一个类)。
public static void Analysis(int[][] myArray) {
int sum = 0;
for (int[] arr : myArray) {
for (int val : arr) {
sum += val;
}
}
System.out.println(sum);
}
这是一个二维数组。你期望如何使用一个索引器访问它?
你可以试试:
public static void Analysis(int[][] myArray)
{
int sum=0; //sum must be initiated BEFORE
for (int i = 0; i < myArray.length; i++)
{
for(int j=0;j<myArray[i].length;j++)
sum += myArray[i][j];
}
System.out.println(sum);
}
你的数组有两个维度!因此,您需要两个循环来迭代这两个维度!
for (int i....
for (int j=0; j<array[i].length ; j++)
sum += array [i] [j] ;
你知道:与你已经写下的打印数组的代码的方式非常相似!访问数组单元以打印....没有区别或者把它们加起来!
你的"myArray"是一个二维数组,你需要为它的操作进行两个循环,像这样:
public static void Analysis(int[][] myArray)
{
for (int i = 0; i < myArray.length; i++)
{
int sum = sum + myArray[i];
}
System.out.println(sum);
}
如果我没有搞错,你的静态int[][] myArray是在主函数(?)我建议你final int[][] myArray
public static void Analysis(int[][] myArray){
int sum=0;
for (int i = 0; i < myArray.length; i++){
for(int j=0; j< myArray[i].length;j++){
sum += myArray[i][j];
}
}
System.out.println(sum);
}