Создание 2D координатной плоскости в Java с использованием циклов for? - PullRequest
0 голосов
/ 17 октября 2018

Я пытаюсь создать программу CoordinateFinder.java, которая запрашивает у пользователя два целочисленных значения от 1 до 5. Затем используйте пару циклов for для создания 2D координатной плоскости.Плоскость должна печатать точку для каждой координаты на плоскости, кроме той, которая указана пользователем, которая должна печатать X.

Пример того, что я пытаюсь сделать:

Enter your x coordinate: 
2
Enter your y coordinate: 
4

5 . . . . . 
4 . X . . . 
3 . . . . . 
2 . . . . . 
1 . . . . . 
0 1 2 3 4 5 

Что у меня есть:

import java.util.Scanner;
public class CoordinateFinder {

public static void main(String[] args) {
Scanner input = new Scanner(System.in);

System.out.println("Please enter an X co-ordinate from 1-5: ");
int x = input.nextInt();

System.out.println("Please enter a y co-ordinate from 1-5:  ");
int y = input.nextInt();


for (int i = 5; i >= 1; i--) {
    System.out.print(i +" ");
    if (i == 0) {
        System.out.println("\n");
        System.out.println(" 5 4 3 2 1 ");  
    }
    for (int j = 4; j >= 0; j--) {
        System.out.print(" . ");
        if (j == 0) {
            System.out.println("\n");

        }
    }
}
}

}

Какие выходы:

5  .  .  .  .  . 

4  .  .  .  .  . 

3  .  .  .  .  . 

2  .  .  .  .  . 

1  .  .  .  .  . 

0 

5 4 3 2 1 
.  .  .  .  . 

1 Ответ

0 голосов
/ 17 октября 2018

В ваших вложенных циклах FOR переменная i представляет ваше значение y, а переменная j представляет ваше значение x.Таким образом, в каждом цикле i необходимо печатать всю строку (значения y), а в каждом вложенном цикле j вы определяете, что будет напечатано в каждом столбце (значение x).Чтобы определить, нужно ли вам печатать X или ., вам нужно сравнить i и j с y и x, например:

import java.util.Scanner;

public class CoordinateFinder {

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);

    System.out.println("Please enter an X co-ordinate from 1-5: ");
    int x = input.nextInt();

    System.out.println("Please enter a y co-ordinate from 1-5:  ");
    int y = input.nextInt();

    System.out.println("");

    for (int i = 5; i >= 1; i--) {
        System.out.print(i);

        for (int j = 1; j <= 5; j++) {
            if (i == y && j == x) {
                System.out.print(" X");
            } else {
                System.out.print(" .");
            }
        }

        System.out.print("\n");
    }

    System.out.println("0 1 2 3 4 5");
}

}

Вывод:

Please enter an X co-ordinate from 1-5: 
2
Please enter a y co-ordinate from 1-5:  
4

5 . . . . .
4 . X . . .
3 . . . . .
2 . . . . .
1 . . . . .
0 1 2 3 4 5

Обратите внимание, что я изменил направление j в подцикле, чтобы представить растущие значения x при перемещении слева направо по сетке.Я оставил i убывающим, чтобы представить убывающие значения y при прохождении по строкам.Остальные мои изменения были форматированием.

...