Это можно было сделать разными способами, но это мой способ сделать это:
Когда вы хотите напечатать сетку, вы должны использовать 2 вложенных цикла for
.
Давайте посмотрим, что происходит, когда вы используете 2 вложенных цикла for
:
for(int i = 0; i < 6; i++){
for(int j = 0; j < 7; j++){
}
}
Начнем с первого цикла:
для i = 0
, мы войдем во второй цикл и перейдем от 0 до 6.
для i = 1
, мы войдем во второй цикл и перейдем от 0 до 6.
...
для i = 5
, мы войдем во второй цикл и перейдем от 0 до 6.
Вы должны заметить, что j
будет повторять и принимать значения от 0 до 6 с каждым значением i
.
Возвращаясь к вашему вопросу и сравнивая его с тем, что я только что показал, вы должны заметить, что для каждой строки вы печатаете 7 значений (столбца).
Предположим, i
- это число строк, а j
- индекс каждого значения в этой строке (столбце).
public static void printGrid() {
for (int i = 0; i < 6; i++) {
System.out.println();
for (int j = 0; j < 7; j++) {
System.out.print("*");
}
}
}
Этот код печатается на каждой строке (i
), 7 звездочках (j
).
И каждый раз, когда я увеличиваю, мы возвращаемся к следующей строке System.out.println()
. Вот почему мы помещаем его в цикл for
с i
.
В вашей ситуации нам нужно немного подправить этот код, чтобы иметь возможность печатать числа по бокам и это пространство в верхнем левом углу.
Объяснение в комментариях к моему коду.
public class Question_55386466{
static int X = 6;
static int Y = 7;
public static void printGrid() {
System.out.print(" "); // Printing the space on the top left corner
for (int i = 0; i < X; i++) {
if (i > 0) { // Printing the numbers column on the left, taking i>0 to start from the second line (i == 1)
System.out.println(); // Going to the next line after printing the whole line
System.out.print(i - 1);//Printing the numbers of the column. Taking i-1 because we start the count for i == 1 not 0
}
for (int j = 0; j < Y; j++) {
if (i == 0)
System.out.print(j + " ");//Print the first line numbers.
else
System.out.print(" * "); //if the line isn't the first line(i == 0), print the asterixes.
}
}
}
Вы всегда можете отредактировать значения X
и Y
и получить желаемый результат.
И позже вы можете указать этому методу свой массив в качестве параметра и напечатать каждый элемент вместо звездочек.