我正在处理一个家庭作业问题,它询问此代码在控制台中显示“消息”一词的次数。我不明白如何解决这个问题。
For i As Integer = 1 To 10 Step 1
For j As Integer = i To 10 Step 1
Console.WriteLine("Message")
Next
Next
我正在处理一个家庭作业问题,它询问此代码在控制台中显示“消息”一词的次数。我不明白如何解决这个问题。
For i As Integer = 1 To 10 Step 1
For j As Integer = i To 10 Step 1
Console.WriteLine("Message")
Next
Next
外层循环执行 34 次,因为它从 1 开始,每次在 34 停止时递增 1,因为第 35 次迭代将超过 34 循环的上限。
内部循环执行 39 次,因为它从 1 开始,每次递增 2(1
、3
、5
、7
等),当值大于 78 时停止,但由于第 40 次迭代将等于 79 的值,后者更大超过 78 则不会执行第 40 次迭代。
34 次 39 = 1,326,因此您将Message
在控制台中看到消息写入 1,326 次。
一般来说,您可以将其分解为:
我 * (j / 2)
其中i
等于外循环迭代 (34) 和j
等于内循环迭代 (78 / 2 = 39)。
正如其他答案所示,迭代次数为 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
1326次
内循环迭代 39 次(78 个数字 / 2 步),外循环迭代 34 次(34 个数字 / 1 步)。外层循环会迭代 34 次,每次,内层循环也会迭代。所以:
34 次外循环迭代 * 39 次内循环迭代(每次)= 1326。