簡體   English   中英

將嵌套的 for 循環轉換為嵌套的 while 循環 JAVA

[英]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=0s=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.

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