Вывод таблицы умножения - PullRequest
1 голос
/ 18 апреля 2020

Мне было интересно, как правильно выровнять этот код? Чтобы он мог больше походить на стол. На выходе цифры начинают смещаться вправо и я не знаю как это исправить

public class MultiplicationTable {

    int[][] arr = new int[13][13];

    public void initializeBoard()
    {
        for(int i = 1; i < 13; i ++)
        {
            for(int j = 1; j < 13; j++)
            {
                arr[i][j] = i * j;
            }
        }
    }


    public void printBoard()
    {
        for(int i = 1; i < 13; i ++)
        {
            for(int j = 1; j < 13; j++)
            {
                System.out.print(arr[i][j] +"   ");
            }

            System.out.println();
        }

    }

}

Ответы [ 2 ]

1 голос
/ 18 апреля 2020

Используйте метод Scanner # printf () для отображения форматированного текста в окне консоли, например:

public void printBoard() {
    for (int i = 1; i < 13; i++) {
        for (int j = 1; j < 13; j++) {
            System.out.printf("%-6s", arr[i][j]);
        }
        System.out.println();
    }
}

На консоли должно отображаться:

1     2     3     4     5     6     7     8     9     10    11    12    
2     4     6     8     10    12    14    16    18    20    22    24    
3     6     9     12    15    18    21    24    27    30    33    36    
4     8     12    16    20    24    28    32    36    40    44    48    
5     10    15    20    25    30    35    40    45    50    55    60    
6     12    18    24    30    36    42    48    54    60    66    72    
7     14    21    28    35    42    49    56    63    70    77    84    
8     16    24    32    40    48    56    64    72    80    88    96    
9     18    27    36    45    54    63    72    81    90    99    108   
10    20    30    40    50    60    70    80    90    100   110   120   
11    22    33    44    55    66    77    88    99    110   121   132   
12    24    36    48    60    72    84    96    108   120   132   144   
1 голос
/ 18 апреля 2020

Вы сделали это почти правильно. Я полагаю, что с меньшим изменением вашего printBoard() метода, как этот, следует правильно выставить вывод

public static void printBoard()
    {
        for(int i = 1; i < 13; i ++)
        {
            for(int j = 1; j < 13; j++)
            {
                if(arr[i][j] >= 100){
                    System.out.print(arr[i][j] +" ");
                } else if(arr[i][j] >= 10){
                    System.out.print(arr[i][j] +"  ");
                } else {
                    System.out.print(arr[i][j] +"   ");
                }

            }

            System.out.println();
        }

    }

И я получил вывод, подобный этому mutiplication table

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...