计算迭代次数

时间:2013-10-28 01:40:17

标签: vb.net for-loop nested-loops

我正在处理作业问题,并且询问此代码在控制台中显示“消息”一词的次数。 我不明白如何解决这个问题。

For i As Integer = 1 To 10 Step 1
  For j As Integer = i To 10 Step 1
    Console.WriteLine("Message")
  Next
Next

3 个答案:

答案 0 :(得分:1)

外循环执行34次,因为它从1开始并且每次在34处增加1,因为第35次迭代将超过34的循环上限。

内循环执行39次,因为它从1开始并每次递增2(1357等),当值大于78时停止,但由于第40次迭代将等于79的值,大于78,它将不执行第40次迭代。

34次39 = 1,326,因此您将在控制台中看到消息Message写入1,326次。

一般而言,您可以将其分解为:

  

i *(j / 2)

其中i等于外循环迭代(34),j等于内循环迭代(78/2 = 39)。

答案 1 :(得分:1)

正如其他答案所示,迭代次数为34 *(78/2)= 1326.为了更多地了解正在发生的事情,我建议您编写如下代码并观察值如何i,j,k更改 - 这里K显示当前的迭代次数 - 特别注意最后一行:

Dim k As Integer = 1
For i As Integer = 1 To 34
    For j As Integer = 1 To 78 Step 2
        Console.WriteLine("Message" & " i:" & i.ToString() & " j:" & j.ToString() & " k:" & k.ToString())
        k += 1
    Next
Next

您将看到如下输出:

Message i:1 j:1 k:1

Message i:1 j:3 k:2

Message i:1 j:5 k:3

Message i:1 j:7 k:4

Message i:1 j:9 k:5

...

Message i:34 j:75 k:1325

Message i:34 j:77 k:1326

答案 2 :(得分:0)

1326次

内循环迭代39次(78个数/ 2步),外循环迭代34次(34个数/ 1步)。外循环将迭代34次,每次内循环也将迭代。所以:

34个外循环迭代* 39个内循环迭代(每次)= 1326。