0

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

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

3 回答 3

1

外层循环执行 34 次,因为它从 1 开始,每次在 34 停止时递增 1,因为第 35 次迭代将超过 34 循环的上限。

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

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

一般来说,您可以将其分解为:

我 * (j / 2)

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

于 2013-10-28T01:52:01.040 回答
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
于 2013-10-28T02:08:00.273 回答
0

1326次

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

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

于 2013-10-28T01:59:27.210 回答