[英]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
,然后添加2
和1
。 您的循環將所有低於3的三角形數相加。三角形數是1
到n
。 這些是1
, 3
, 6
, 10
等。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.