跪求java代码中的两个for循环的结果,变量变一次说明一次结果。谢谢!

本人是一个java初学者,老师讲的不太清楚,自己看书怎么想也想不出这两条for是怎么回事。publicclassTwoDAgain{publicstaticvoidmai... 本人是一个java初学者,老师讲的不太清楚,自己看书怎么想也想不出这两条for是怎么回事。
public class TwoDAgain {
public static void main(String[] args) {
int twoD[][] = new int[4][];
twoD[0] = new int[1];
twoD[1] = new int[2];
twoD[2] = new int[3];
twoD[3] = new int[4];

int i, j, k = 0;
for (i = 0; i < 4; i++)
for (j = 0; j <= i; j++) {
twoD[i][j] = k;
k++;
}
for (i = 0; i < 4; i++) {
for (j = 0; j < i + 1; j++){
System.out.print(twoD[i][j] + " ");
System.out.println();
}
}
}
}
结果是这个我也知道,就是里面的循环内容他是怎么搞的不知道?
0
1 2
3 4 5
6 7 8 9
跪求详细解释:当i等于0时,是什么结果,j等于0时是什么结果,怎么得到的。只要这一点,结果不重要,主要是for是怎么循环,for有没有循环到truet和flace的地方,具体在哪里?还有就是大括号?
展开
 我来答
匿名用户
2013-09-18
展开全部
呵呵~~~~你和我碰到的问题差不多,当初我们老师给我们出的是‘百鸡百钱’的题目,我只有思路而写不出来,结果他讲过一次了,我还是不太明白~~~后来把这个数组和 for 循环狠狠的恶补了下,现在感觉好多了~

其实你可以这样~~我说下方法,你可以慢慢去体会,毕竟这才是你自己的,人家说的再好也是人家的。

/*当 I = 0 的时候,J 必须要小于 1 ,那么就可以得到 twoD[i][0] = 0; 当循环了这一次之后,J 就不满足条件 J < I 了。所以这个时候就跳出了内 for 循环,继而开始执行外 for 循环的 I++ ;
每次当 J = 0 的时候,都是指向这个数组中每一行的第一个元素,赋值也可以,输出也可以~*(有没有晕掉啊?我可是狠狠钻了一个礼拜才弄明白数组和 for 的)/

int i, j, k = 0;
for (i = 0; i < 4; i++)
for (j = 0; j <= i; j++) {
twoD[i][j] = k;
k++;
}
/*前面的这个循环是给每个二维数组的每个元素进行赋值。*/

for (i = 0; i < 4; i++) {
for (j = 0; j < i + 1; j++){
System.out.print(twoD[i][j] + " ");
System.out.println();
}
/*你可以把输出语句放到这里看下结果,也可以自己试着尝试下其他的地方。这里理解会好点*/
}

更多是自己慢慢的去实验,编程最重要的是经验,只有犯错越多,你的经验就越好(当然错误你是要去面对,要去处理的。)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-18
展开全部
这是嵌套循环!首先看i当i=0时,进行判断i<4那么进入循环,走到
for(j=0;j<=i+1;j++)这里时,j=0;i呢,是由上面那句传下来的所以是0 i<=j
进入循环体
twoD[i][j] = k;(k此时是0所以,two[0][0]=1;
k++;
我后j++,此时j=1,再走到j<=i(而i=0)退出循环!
退到外面的大循环到i++,i变成1再走到里面的循环给two[1][0]赋值,再给two[1][1]赋值依次类推,
这个实际上是一个4*4的数组,只有部份有值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-18
展开全部
int twoD[][] = new int[4][];
twoD[0] = new int[1];
twoD[1] = new int[2];
twoD[2] = new int[3];
twoD[3] = new int[4];
定义了一个2维数组,twoD[0]有一个数,twoD[1]有2个数,twoD[2]有3个数,twoD[3]有4个数

for (i = 0; i < 4; i++)
for (j = 0; j <= i; j++) {
twoD[i][j] = k;
k++;
}
2重循环对应2维数组,i控制行号,j控制列号
依次给2维数组赋值
(j = 0; j <= i; j++)
列号永远<=行号,这是你定义数组的时候钉死的
k=0,循环一次就+1
twoD[0][0]=0
twoD[1][0]=1,twoD[1][1]=2
twoD[2][0]=3,twoD[2][1]=4,twoD[2][2]=5
twoD[3][0]=6,twoD[3][1]=7,twoD[3][2]=8,twoD[3][3]=9

for (i = 0; i < 4; i++) {
for (j = 0; j < i + 1; j++){
System.out.print(twoD[i][j] + " ");
System.out.println();
}
依次输出,和赋值一样的原理,输出一个就"System.out.println();"换行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-18
展开全部
/**
* @author qingsongwang
* 2008.10.24
*/
public class TwoDAgain {
public static void main(String[] args) {
int twoD[][] = new int[4][];
//此处是建立一个四位的数组

twoD[0] = new int[1];
//这里的元素:twoD[0][0]

twoD[1] = new int[2];
//这里的元素:twoD[1][0],twoD[1][1]

twoD[2] = new int[3];
//此语句的意义:twoD[2][0],twoD[2][1],twoD[2][2]

twoD[3] = new int[4];
//此语句的意义:twoD[3][0],twoD[3][1],twoD[3][2],twoD[3][3]

//相信你把上面的各个语句的含义理解,那么就是清晰的结构和代码了!

int i, j, k = 0;
for (i = 0; i < 4; i++)
for (j = 0; j <= i; j++)
{
twoD[i][j] = k;
k++;
//这里因为你的K在两个for语句的外面所以这里会一直++,
//而上面就取得K进行赋值
}
for (i = 0; i < 4; i++) {
for (j = 0; j < i + 1; j++)
{
System.out.println(twoD[i][j] + " ");
//这里的两个for语句只是打印twoD[][]中的元素而已!
//关键的语句已经解决,希望你能明白我的意思!

}
}
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-18
展开全部
推荐你到这群里提问一下:50613398
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式