[英]Can anyone explain to me the behavior of a nested for loop in Java in regards to memory?
假设我有这段代码,它也可以打印一个星形模式(即,如果我在打印方法的侧面用“#”替换字符串文字),就像从右下往下走的楼梯。
public static void main(String[] args)
{
for (int i=0; i <= 6; i++){
for(int k=0; k < i; k++){
System.out.print("This is k:"+k + " " + " This is i:"+i);
}
System.out.println();
}
}
实际上,这将在每列中将k的值全部打印为0,然后再将所有1s,然后所有2s依次打印出来...对于i的值,它将在每列1,2,3,4,5,6中打印,然后2,3,4,5,6 3,4,5,6等。
好的,为什么i的值不是从零开始? 我以为应该先执行内部循环。
这与内存无关,只是逻辑。 因为k
从0
开始,并且k < i
意味着第一个测试是0 < 0
,这是不正确的。 所以i
增加。 因此,您的第一个i
输出为1
。 如果要为i
看到0
,则在内部for
循环条件中需要k <= i
。
取而代之的是,您应该i from 1
开始计算i from 1
的值
for(i=1;i<6;i++)
因为除了println
之外, i=0
并没有实现任何目标。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.