簡體   English   中英

嵌套循環Java混亂

[英]Nested for loop Java confusion

嗨,我有一個關於Java中嵌套的for循環的初學者問題。

int sum = 0;
for(int i = 1; i < 3; i++){
    for(int j = i; j>= 0; j--){
        sum += j;
    }
}

這是我的跟蹤表

i j sum
1 1 1
  0 1
2 2 2
  1 3
  0 3

我的問題是,為什么循環末尾的輸出為4? 是因為3 + 1嗎?

您的跟蹤表是錯誤的。 這是正確的:

i j sum
1 1 1
  0 1
2 2 3
  1 4
  0 4

您將j所有值(第二列)加起來,實際上是1 + 0 + 2 + 1 + 0 = 4

實際上,我們需要對您的表格結果進行更正:

i j sum
1 1 1
  0 1
2 2 2 (sum is 2+1(existing sum, sum is not 0 anymore) )
  1 3 (sum is 3 + 1 = 4)
  0 3 (sum is 4+ 0 = 4)

輸出為4,因為sum為:

0 + 
1 +
2 + 1 = 
= 4

首先添加1 ,然后添加21 您的循環將所有低於3的三角形數相加。三角形數是1n 這些是13610等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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