简单嵌套循环的逻辑问题

Logic problem with the simple nested loop

我正在尝试一个简单的嵌套循环。对于 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;
    }
}

你正在改变循环内的 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;
}

您需要在 num1 > 0 到 运行 num2 > 0 的 while 循环中重新声明 num2 整数;

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;
 }