Re: [问题] 双层for循环 i j 相反

楼主: adrianshum (Alien)   2015-06-09 15:25:48
※ 引述《drcula (Son of SUN)》之铭言:
: 借版友的问题,想求助一下
: 弟做了一个10x10的二维阵列,由0~99这100个数字填满的二维阵列
: 目前已经完成可显示由0~99这样的二维阵列
: 但我还需要在最后将这二维阵列的所有值加总,在这加总上却遇上点问题
: 弟的程式码如下
: public static void main(String[] args)
: { int i,j =0 ;
: int sum = 0 ;
: int arr[][];
: arr = new int[10][10];
: { for( i = 0; i < 10; i++)
: { for(j = 0; j < 10; j++)
: arr[i][j] = 10*i+j ;
: }
: }
: { for( i = 0; i < 10; i++)
: { for(j = 0; j < 10; j++)
: System.out.print(arr[i][j] + " ");
: System.out.println();
: }
: }
: sum +=arr[i][j];
: System.out.println("Sum = " + sum);
: }
: 显示是
: 0 1 2 3 4 5 6 7 8 9
: 10 11 12 13 14 15 16 17 18 19
: .
: .
: .
: 90 91 92 93 94 95 96 97 98 99
: 找书或上网查关于加总的部份
: 错误的原因可能是,数组越界?
: 不知道有没有大大能提示看看解决的方法,感激不尽
首先,你的 code 排版可怕得不得了。
你的 code 如果依正常排版会是
public static void main(String[] args) {
int i,j =0 ;
int sum = 0 ;
int arr[][];
arr = new int[10][10];
{
for( i = 0; i < 10; i++) {
for(j = 0; j < 10; j++)
arr[i][j] = 10*i+j ;
}
}
{
for( i = 0; i < 10; i++) {
for(j = 0; j < 10; j++)
System.out.print(arr[i][j] + " ");
System.out.println();
}
}
sum +=arr[i][j];
System.out.println("Sum = " + sum);
}
for 外面有个意义不明的 block, 第二个 for loop 第二层里面的缩排
也是极为误导。
另外你的 "显示" 也没有把重点贴出来 (Sum= ??? 那句在哪?还是有 Exception?
我猜是有出现 Array Out Of Bound Exception 吧?
问题其实排好版就很明显:你的 sum+= arr[i][j]; 应该在哪做的?
找个 IDE, 开个 debugger,跟着一步步跑一次,很容易就会知道问题在哪了
我猜你想写的是:
public static void main(String[] args) {
int sum = 0 ;
int arr[][] = new int[10][10];
for( int i = 0; i < 10; i++) {
for(int j = 0; j < 10; j++) {
arr[i][j] = 10*i+j ;
}
}
for( i = 0; i < 10; i++) {
for(j = 0; j < 10; j++) {
System.out.print(arr[i][j] + " ");
sum += arr[i][j];
}
System.out.println();
}
System.out.println("Sum = " + sum);
}
作者: cha122977 (CHA)   2015-06-10 14:24:00
应该是这意思没错...
作者: drcula (Son of SUN)   2015-06-10 16:30:00
感谢前辈指导,一次解决,甚至连后面的一些延申的也茅塞顿开

Links booklink

Contact Us: admin [ a t ] ucptt.com