java - 简单嵌套循环的逻辑问题

标签 java loops while-loop nested-loops

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

关于java - 简单嵌套循环的逻辑问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58329902/

相关文章:

java - 安卓直接分享

javascript - 使用 JavaScript 将数据插入数组

python-3.x - 设置 IF 语句以检查特定字符,在使用任何字符时中断 while 循环

c - 在 while 循环中一起使用 isalpha 和 toupper 给出 "index out of bounds"

c - 函数不会返回 0,找不到逻辑错误

java - 如何将日历的时间与java.sql.Time对象进行比较?

java - 使用Scanner读取用户的输入,有没有办法知道他刚刚输入的是什么样的数据? (字符、整数、字符串)

loops - 如何按确切顺序遍历表?

python - 使用 join 时,Spark 迭代时间呈指数增长

java - 在 intelliJ 中创建一个 psiElement