簡體   English   中英

誰能給我解釋一下Java中關於內存的嵌套for循環的行為?

[英]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的值不是從零開始? 我以為應該先執行內部循環。

這與內存無關,只是邏輯。 因為k0開始,並且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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM