2016-01-18 93 views
-3

此嵌套循环运行多少次。我如何通过查看代码来确定它。嵌套循环,它运行多少次?

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 
+0

您可以像运行一样逐行处理它。如果太复杂,请使用表格。 –

+0

这不是一个无限循环吗? – Manu

回答

0

既然你从i--最后一行留下了--,这将永远不会终止。

+0

真的,技术上讲,它会循环:) –

+0

好点。虽然,它会觉得无限大,考虑到随着“我”的增长,内部循环会扩大而不是收缩。 – ChiefTwoPencils

0

好吧,首先,代码不完整,取决于它的完成方式,完全改变了答案。应该是这样的:

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次。假设它的“我 - ”

+0

如果它是用'i ++'编写的,虽然它需要很长时间才能完成,但这并不是真正的无限。一个'int'有一个上限,最终会溢出到负数并停止。 – ChiefTwoPencils

+0

这是真的,但他没有定义任何类型的代码系统,所以我进行了一次飞跃,并认为它更像是一个基于逻辑的事情,然后是一个实际的代码。 – Marky

+0

是啊,它不是实际的代码,只是一个嵌套循环如何工作的例子,谢谢 –