Как объединить вывод двух циклов for в формат таблицы? - PullRequest
1 голос
/ 04 ноября 2019

Я использовал два цикла for для преобразования миль в км и км в миль соответственно для выбранных значений. Однако проблема, с которой я сталкиваюсь, заключается в том, что выходные данные для первого цикла for не соседствуют с выходными данными второй таблицы. Оцените некоторую помощь в этом!

public static double miletoKilometer(double mile) {
 double conversion = mile * 1.609;
 return conversion;
}

public static double kilometerToMile(double km) {
 double conversion2 = km / 1.609;
 return conversion2;
}

public static void main(String[] args) {
 int mileInput = 0;
 double kmOutput = 0;
 int kmInput = 0;
 double mileOutput = 0;
 int displayRow1 = 0;
 int displayRow2 = 0;
 System.out.print("Miles\tKilometres\tKilometres\tMiles \n");

 for (int i = 0; i < 11; i++) {
  if (i == 1 || i == 2 || i == 9 || i == 10) {
   mileInput = i;
   System.out.printf("\n" + i);
   kmOutput = miletoKilometer(mileInput);
   System.out.printf("\t %.3f\n", kmOutput);
  }
 }
 for (int j = 0; j < 66; j++) {
  if (j == 20 || j == 25 || j == 60 || j == 65) {
   kmInput = j;
   System.out.printf("\n\t\t         " + j);
   mileOutput = kilometerToMile(kmInput);
   System.out.printf("\t\t%.3f", mileOutput);
  }

 }
}

Текущий вывод: введите описание изображения здесь

1 Ответ

0 голосов
/ 06 ноября 2019

Изменение вашего цикла в соответствии с кодом ниже должно привести все в правильном порядке. Не самое элегантное решение, но оно выполняет свою работу.

        int j = 0;
    for (int i = 0; i < 11; i++) {
        if (i == 1 || i == 2 || i == 9 || i == 10) {
           mileInput = i;
           System.out.printf("\n" + i);
           kmOutput = miletoKilometer(mileInput);
           System.out.printf("\t %.3f", kmOutput);
           for (; j < 66; j++) {
               if (j == 20 || j == 25 || j == 60 || j == 65) {
                 kmInput = j;
                 System.out.printf("\t\t         " + j);
                 mileOutput = kilometerToMile(kmInput);
                 System.out.printf("\t\t%.3f\n", mileOutput);
                 j++;
                 break;
              }
          }
        }
    }

enter image description here

...