Как исправить таблицу умножения с помощью JOption Pane? - PullRequest
0 голосов
/ 19 января 2019

Я пытаюсь создать таблицу умножения с вводом пользователем нужной таблицы и количеством цифр, которые он / она хочет отобразить (например, ввод 2 для таблицы и 5 для чисел даст 2,4,6, 8,10).

Я пробовал следующее, но это не даст желаемого результата.

public class MultiplicationTable {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int num = Integer.parseInt(JOptionPane.showInputDialog("Enter a number."));

        int value = Integer.parseInt(JOptionPane.showInputDialog("Enter number of times."));

        printTable( num,  value);
    }

    private static void printTable(int num, int value) {
        int [] table = new int[value];
        for(int i = 0; i<=value-1; i++) {
            table[i] = num*i;
        }
        System.out.println(table); 
    }
}

Это печать: [I@3d494fbf когда следует печатать таблицу умножения.

Ответы [ 3 ]

0 голосов
/ 19 января 2019

Когда вы используете System.out.println для печати объекта (например, вашего массива), на самом деле происходит вызов метода toString объекта.

Теперь по методу toString класса Object:

Метод toString для класса Object возвращает строку, состоящую из имя класса, экземпляром которого является объект, знак символ `@ 'и шестнадцатеричное представление хеша без знака код объекта. Другими словами, этот метод возвращает строку, равную на значение:

getClass (). GetName () + '@' + Integer.toHexString (hashCode ())

Если вы хотите распечатать содержимое массива, попробуйте System.out.println(Arrays.toString(table));

0 голосов
/ 19 января 2019

Поместить строку печати в цикл Как это: -

for(int i = 1; i<=value-1; i++)
{
    table[i] = num*i;
    System.out.println(table[i])
}

Значение '[I @ 3d494fbf', которое печатает ваша программа, - путь к памяти массива 'table'.

0 голосов
/ 19 января 2019

Попробуйте java.util.Arrays.toString(int[]) API.

Внутри вашего printTable() вы можете напечатать так:

System.out.println(Arrays.toString(table));
...