[英]convert nested for loop into a nested while loop JAVA
我是初學者,我需要將此“for”循環轉換為“while”循環。
int s = 0;
int t = 1;
for (int i = 0; i < 5; i++) {
s = s + i;
for (int j = i; j > 0; j--) {
t = t + (j - 1);
}
s = s + t;
System.out.println("T is " + t);
}
System.out.println("S is " + s);
我試過這個,但沒有用
int s = 0;
int t = 1;
int i = 0;
while (i < 5)
i++;
{
s = s + i;
int j = i;
while (j > 0)
j--;
{
t = t + (j - 1);
}
s = s + t;
System.out.println("T is " + t);
}
System.out.println("S is " + s);
當它應該讀取時,輸出是 T=0 和 S = 5
T is 1
T is 1
T is 2
T is 5
T is 11
S is 30
謝謝
int s = 0;
int t = 1;
int i = 0;
while (i < 5)
{
s = s + i;
int j = i;
while (j > 0)
{
t = t + (j-1);
j--;
}
i++;
s = s + t;
System.out.println("T is " + t);
}
System.out.println("S is " + s);
您應該更仔細地研究語法。 否則,您將單次執行這些塊。
早些時候你正在運行這個
while (i < 5)
i++;
這基本上執行了 5 次循環,在循環結束后, i
得到了 5 的值。
之后,我們運行該塊並再次遇到 while 循環。
while (j > 0)
j--;
它再次執行 5 次。 所以在這個循環結束后它將是j=0
。
所以你最終得到t=0
和s=5
。 就是這樣。
i++;
應該在循環的括號內,而不是放在之前。 與j
相同。
while (i < 5)
{
s = s + i;
int j = i;
while (j > 0)
{
t = t + (j-1);
j--; // j needs to be incremented here
}
s = s + t;
i++; // i needs to be incremented here
}
目前,您有一個循環,其中唯一的語句是i++;
,然后其余代碼(位於其自己的代碼塊(或本地范圍)中)僅執行一次。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.