Почему мой внутренний номер не считает и печатает? - PullRequest
1 голос
/ 02 октября 2019

Я пытаюсь сделать цикл здесь, но он напечатает несколько комбинаций чисел 1-2 для цифр ## + ##. Но пока я не могу получить свой numD в последнем цикле для печати. По какой-то причине numD даже не объединяется и не добавляется постепенно. Любая помощь приветствуется, вы можете игнорировать прокомментированный код

dim = 2;
numA = 1;
numB = 1;
numC = 1;
numD = 1;
for (int numA = 1; numA < dim + 1; numA++) { // biggest or leftest number loop first

                for (int numB = 1; numB < dim + 1; numB++) { // second number from the left

                    for (int numC = 1; numC < dim + 1; numC++) { // third number from the left

                        for (int numD = 1; numD < dim + 1; numD++) { // least number loop last            
                        // this will store number in arraylist
                            //outcomeOutput = String.valueOf(numA) + String.valueOf(numB)+" + "
                                //  + String.valueOf(numC) + String.valueOf(numD); 

                            System.out.println(numD);

                            System.out.println(outcomeOutput);
                            //dBArray.get(dim-1).add(outcomeOutput);
                            //System.out.println(dBArray.get(dim-1).get(count));
                            //count++;
                        }
                    }
                }


        }

Ответы [ 2 ]

1 голос
/ 02 октября 2019

Вам не нужно (и не следует) инициализировать переменные цикла перед циклами.

Если вы раскомментируете строки:

String outcomeOutput = String.valueOf(numA) + String.valueOf(numB)+" + "
                          + String.valueOf(numC) + String.valueOf(numD);

System.out.println(outcomeOutput);

Кажется, что вы печатаете то, что выхочу.

Есть на самом деле более простые способы превратить целые числа в строки. Вы можете использовать String.format() (например, String.format("%d%d + %d%d", numA, numB, numC, numD) или, что еще проще, вы можете объединить их в строку. В приведенном ниже коде я начинаю с пустой строки "", а затем объединяю в ней целые числа. Я использовал более простыеимена переменных, которые, я думаю, облегчают чтение кода.

int dim = 2;
for (int a = 1; a < dim + 1; a++) {
    for (int b = 1; b < dim + 1; b++) {
        for (int c = 1; c < dim + 1; c++) {
            for (int d = 1; d < dim + 1; d++) {
                System.out.println("" + a + b + " + " + c + d);
            }
        }
    }
}

Производит:

11 + 11
11 + 12
11 + 21
11 + 22 * ​​1020 * 12 + 11
12 + 12
12 + 21
12 + 22 * ​​1024 * 21 + 11
21 + 12
21 + 21
21+ 22 * ​​1028 * 22 + 11
22 + 12
22 + 21
22 + 22 * ​​1032 *

0 голосов
/ 02 октября 2019

Я мог бы видеть это ..... Я только видел, что Дим был объявлен. Я не думал, что он был объявлен, я не видел его до тех пор, пока не опубликовал.

Ваша переменная numD является целым числом. Вы должны сделать это строкой для отображения Println. взгляните на это сообщение о Println Как работает System.out.print ()?

...