将嵌套for循环转换为嵌套的while循环JAVA

时间:2017-10-24 20:13:54

标签: java for-loop while-loop

我是初学者,我需要转换这个" for"循环进入"而#34;循环。

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

感谢

2 个答案:

答案 0 :(得分:0)

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。就是这样。

答案 1 :(得分:0)

1.1.8应位于循环括号内,而不是放在之前。与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 } ,然后代码的其余部分(它在自己的代码块(或本地范围)中)只执行一次。 / p>