【发布时间】:2019-10-10 19:29:15
【问题描述】:
我正在尝试一个简单的嵌套循环。对于 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 = num2 / 10;修改num2以便在内循环运行一次后,对于外循环的后续迭代,num2为零。您需要在内循环之后重置它。或者使用临时变量:int temp = num2; while (temp > 0)..... -
注意,另一种选择是使用
for循环:for (int i = num2; i > 0; i /= 10) {digit2 = i % 10; System.out.println("num2 digit: " + digit2);}这也会创建一个临时变量 (i),但更紧凑。 -
@JohnnyMopp 非常感谢,您的评论很有帮助。
标签: java loops while-loop nested-loops