Преобразование для l oop в некоторое время l oop (java) - PullRequest
2 голосов
/ 07 марта 2020

Мне нужно конвертировать for-l oop в while-l oop.

Вот for-l oop:

double price;
for (int person = 1; person <= 20; person++){
     for (int day = 1; day <= 10; day++){
          price = 2.5;
          price = price * person * day;
          System.out.print("\t" + price);
     }
     System.out.println();
}

Вот что я попробовал:

double price = 2.5;
int person = 1;
while (person <= 20){
      int day = 1;
      while (day <= 10) {
           price *= person * day;
           System.out.print("\t" + price);
           day++;
      }
      System.out.println();
      person++;
}

Однако я не получаю такой же вывод. Может ли кто-нибудь помочь мне с этим кодом?

1 Ответ

2 голосов
/ 07 марта 2020

Как только вы получили price внутри вложенного l oop и второй раз - снаружи. Эквивалент будет:

int person = 1;
while (person <= 20){
      int day = 1;
      while (day <= 10) {
           double price = 2.5;
           price *= person * day;
           System.out.print("\t" + price);
           day++;
      }
      System.out.println();
      person++;
}

PS: вводить переменную при каждом повороте l oop не имеет большого смысла, почему бы не вставить ее: System.out.print("\t" + (2.5 * person * day));?

...