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