java的问题

public class yes {

public static void main(String[] args) {

int scorel[][]=new int[4][3];
scorel[0][1]=30;
scorel[1][0]=31;
scorel[2][2]=32;
scorel[3][1]=33;
scorel[1][1]=30;
for(int i=0;i<scorel.length;i++) /*这里的scorel.length是什么意思?
{
for(int j=0;j<scorel[i].length;j++) /*这里的scorel[i].length是上个for的i还是哪个数!
{

System.out.print(scorel[i][j]+"\t");
}

System.out.println("");
}
}
}

第1个回答  2012-05-09
二维数组可以看成是特殊的一位数组,即存储的数据是一位数组的一位数组。那么scorel.length的表示这个一位数组的长度,scorel[i].length表示这个一位数组中的每一个一位数组的长度,有点绕。对于 int scorel[][]=new int[4][3]你也可以看成是一个4行3列的矩阵,
scorel.length=4;scorel[i].length=3;对应你的循环相当于:
for(int i=0;i<4;i++) {
for(int j=0;j<3;j++) {
System.out.print(scorel[i][j]+"\t");
}
}
第2个回答  2012-05-09
for(int i=0;i<scorel.length;i++), scorel.length 是数组scorel 的长度,
for(int j=0;j<scorel[i].length;j++) 外层for的i追问

for(int i=0;i<scorel.length;i++) = for(int i=0;i<4;i++)
for(int i=0;i<scorel[i].length;i++) = for(int i=0;i<从0开始;i++)
是这意思?

追答

for(int i=0;i<scorel.length;i++) = for(int i=0;i<4;i++) 是的

for(int j=0;j<scorel[i].length;j++) 相当于 j < 第i行数组有多少列

本回答被提问者采纳
第3个回答  2012-05-09
这个问题 看看了解了就行 不必深究
java中分配二维数据的空间是分配一维数据的10倍以上(数量相等的前提下)
譬如 你分配一个100的一维数据 和一个10*10的二维数组 堆空间差距会在10倍以上

关于你的问题 你画一个坐标轴看一下就知道了
一个是X的长度 一个是Y的长度
第4个回答  2012-05-09
//希望我的回答能给你带来帮助。。。
public static void main(String[] args){
int scorel[][]=new int[4][3];
scorel[0][1]=30;
scorel[1][0]=31;
scorel[2][2]=32;
scorel[3][1]=33;
scorel[1][1]=30;
System.out.println("scorel.length == " + scorel.length);
for(int i=0;i<scorel.length;i++){
//这里的scorel.length是什么意思? 答:scorel.length是数组的行数
for(int j=0;j<scorel[i].length;j++){ //这里的scorel[i].length是上个for的i还是哪个数!
//答:这个你需要从数组的特点上入手,打个比方,scrorel[1]就表示的是第一行数组,它的长度等于列长,也就是3
System.out.print(scorel[i][j]+"\t");
}
System.out.println("");
}
}
第5个回答  2012-05-09
把值打印出来就可以知道了。实践出真知
相似回答