Логическая проблема с простым вложенным циклом - PullRequest
0 голосов
/ 10 октября 2019

Я пытаюсь простой вложенный цикл. Для каждой цифры в num1 должен выполняться внутренний цикл. Для следующих чисел в идеале вывод должен быть:

num1 digit: 7
num2 digit: 4
num2 digit: 3
num1 digit: 5
num2 digit: 4
num2 digit: 3

Но он не запускает внутренний цикл во второй раз, поэтому он только печатает это:

num1 digit: 7
num2 digit: 4
num2 digit: 3
num1 digit: 5

что не такс логикой?

num1 = 57;
num2 = 34;
while ( num1 > 0 ) {

    digit1 = num1 % 10;
    num1 = num1 / 10;
    System.out.println("num1 digit: " + digit1);

    while (num2 > 0 ) {
        digit2 = num2 % 10;
        System.out.println("num2 digit: " + digit2);
        num2 = num2 / 10;
    }
}

Ответы [ 2 ]

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

Вы меняете num2 внутри цикла, попробуйте что-то вроде:

num1 = 57;
num2 = 34;
int tempNum2 = num2;
while ( num1 > 0 ) {

    digit1 = num1 % 10;
    num1 = num1 / 10;
    System.out.println("num1 digit: " + digit1);

    while (tempNum2 > 0 ) {
        digit2 = tempNum2 % 10;
        System.out.println("num2 digit: " + digit2);
        tempNum2 = tempNum2 / 10;
    }
    tempNum2 = num2;
}
0 голосов
/ 10 октября 2019

Вам необходимо повторно объявить целое число num2 в цикле while для num1> 0, чтобы снова запустить num2> 0;

int num1 = 57;
int num2 = 34;
while ( num1 > 0 ) {
    digit1 = num1 % 10;
    num1 = num1 / 10;
    System.out.println("num1 digit: " + digit1);

    while (num2 > 0 ) {
         digit2 = num2 % 10;
         System.out.println("num2 digit: " + digit2);
         num2 = num2 / 10;
    }

    //Add here
    num2 = 34;
 }
...