Java从'For'语句转换为嵌套While语句

时间:2015-10-20 01:50:49

标签: java loops

转换以下代码,使其使用嵌套的while语句而不是for语句。

下面是原始代码,其中for循环转换为嵌套的while循环:

public static void main (String [] args)
   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;

我目前的情况如下:

int i = 0;
int j = 0;
int s = 0;
int t = 1;

while ( i < 5)
{
    s = s + i;

     while (j > 0)
     {
         t = t + (j -1);
     }
       i++;
       j--;

这会产生以下输出: T是1, T是1, T是1, T是1, T是1, S是10

它应该产生的是: T是1, T是1, T是2, T是5, T是11, S是30

  • 现在在第一个循环中,需要进行转换,我知道'S'正在通过循环添加'1'直到它超过5然后它将下拉到“for”循环并继续与那些行动。但是,我不明白的是在完成'S'的操作后,它增加到30,然后下降到第二个'for'语句 - 'j'来自哪里?例如,第一个语句int j = i;询问int j是否等于'S'的总和?

谢谢大家的帮助。

1 个答案:

答案 0 :(得分:0)

你需要在int self循环中递减j,这是第二个while循环。 在while循环之前,你需要初始化j=i,就像你正在进行for循环一样。

代码:

while ( i < 5)
{
    s = s + i;

    j=i;
    while (j > 0)
    {
       t = t + (j -1);
       j--;
    }
    i++;