此嵌套循环运行多少次。我如何通过查看代码来确定它。嵌套循环,它运行多少次?
int i = 5, j =0;
while (i>0)
{
j = 1;
while (j<i)
{
System.out.println(“Inner loop!”);
j++;
}
System.out.println(“Outer loop!”);
i
此嵌套循环运行多少次。我如何通过查看代码来确定它。嵌套循环,它运行多少次?
int i = 5, j =0;
while (i>0)
{
j = 1;
while (j<i)
{
System.out.println(“Inner loop!”);
j++;
}
System.out.println(“Outer loop!”);
i
既然你从i--
最后一行留下了--
,这将永远不会终止。
真的,技术上讲,它会循环:) –
好点。虽然,它会觉得无限大,考虑到随着“我”的增长,内部循环会扩大而不是收缩。 – ChiefTwoPencils
好吧,首先,代码不完整,取决于它的完成方式,完全改变了答案。应该是这样的:
int i = 5, j =0;
while (i>0)
{
j = 1;
while (j<i)
{
System.out.println(“Inner loop!”);
j++;
}
System.out.println(“Outer loop!”);
i++; // OR i--;
}
如果情况是最后部分是“我++”末它运行的无限次,因为当“虽然(I> 0)”的计算结果中,“i “永远不会变得小于0.并且仅在逻辑中”无限“,因为数字(在这种情况下为整数)在代码/编译器中具有明确的上限。
如果它的“我 - ”那么它是一个简单的计数问题。较大的循环[while(i> 0)]将从5减至0,并且当i为零时退出,这意味着它将在i = 5,i = 4,i = 3,i = 2时运行,和i = 1。这意味着外循环有效运行5次,每次运行少一点。
J从1开始并计数到刚好在[while(j [lessthen] i)],这意味着它将在第一次计算1到4时运行,因为J从1开始并且趋于1 - 然后我(第一次5)。所以第一次是3,第二次是3,第三次是2,第四次是1,第五次没有,因为在最后一种情况下,评估是1(j)[lessthen] 1(i),这是错误的并退出循环。
为了得到您的最终号码,您需要统计内部循环成功发生的次数,在这种情况下为4 + 3 + 2 +1或... 10次。假设它的“我 - ”
如果它是用'i ++'编写的,虽然它需要很长时间才能完成,但这并不是真正的无限。一个'int'有一个上限,最终会溢出到负数并停止。 – ChiefTwoPencils
这是真的,但他没有定义任何类型的代码系统,所以我进行了一次飞跃,并认为它更像是一个基于逻辑的事情,然后是一个实际的代码。 – Marky
是啊,它不是实际的代码,只是一个嵌套循环如何工作的例子,谢谢 –
您可以像运行一样逐行处理它。如果太复杂,请使用表格。 –
这不是一个无限循环吗? – Manu