В ваших вложенных циклах 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 при прохождении по строкам.Остальные мои изменения были форматированием.