跳转到内容

编程基础/嵌套循环

来自维基教科书,开放世界中的开放书籍

嵌套 for 循环将一个 for 循环放在另一个 for 循环里面。内部循环会针对外部循环的每次迭代重复执行。

嵌套控制结构

[编辑 | 编辑源代码]

我们首先介绍嵌套控制结构的概念。嵌套是指将一个项目放置在另一个项目内部。例如

if expression
    true action
else 
    false action

这是 if then else 控制结构的基本形式。现在考虑

if age is less than 18
    you can't vote
    if age is less than 16
        you can't drive
    else
        you can drive
else
    you can vote
    if age is less than 21
        you can't drink 
    else
        you can drink

如您所见,我们在 “true action” 部分简单地包含了一个语句和另一个 if then else 控制结构。我们对 “false action” 进行了同样的操作(嵌套了另一个 if then else)。在我们的示例中,我们嵌套了 if then else 控制结构。嵌套可以包含一个在 while 循环内部的 if then else。因此,嵌套的概念允许混合不同类型的控制结构。

许多复杂的逻辑问题需要使用嵌套控制结构。通过嵌套控制结构(或将一个控制结构放在另一个内部),我们可以解决几乎所有复杂的逻辑问题。

示例 - 嵌套 for 循环

[编辑 | 编辑源代码]

以下是一个 10 x 10 乘法表的示例

         1 |   2 |   3 |   4 |   5 |   6 |   7 |   8 |   9 |  10 |
     -------------------------------------------------------------
   1 !   1 |   2 |   3 |   4 |   5 |   6 |   7 |   8 |   9 |  10 |
   2 !   2 |   4 |   6 |   8 |  10 |  12 |  14 |  16 |  18 |  20 |
   3 !   3 |   6 |   9 |  12 |  15 |  18 |  21 |  24 |  27 |  30 |
   4 !   4 |   8 |  12 |  16 |  20 |  24 |  28 |  32 |  36 |  40 |
   5 !   5 |  10 |  15 |  20 |  25 |  30 |  35 |  40 |  45 |  50 |
   6 !   6 |  12 |  18 |  24 |  30 |  36 |  42 |  48 |  54 |  60 |
   7 !   7 |  14 |  21 |  28 |  35 |  42 |  49 |  56 |  63 |  70 |
   8 !   8 |  16 |  24 |  32 |  40 |  48 |  56 |  64 |  72 |  80 |
   9 !   9 |  18 |  27 |  36 |  45 |  54 |  63 |  72 |  81 |  90 |
  10 !  10 |  20 |  30 |  40 |  50 |  60 |  70 |  80 |  90 | 100 |

我们可能还会发现,答案可以设计成一系列单元格(每个单元格正好六个空格宽)。生成部分表格的伪代码为

For row = 1, row <= 3, row += 1
    For column = 1, column <= 3, column += 1
        Output row * column
        Output "\t"
    Output "\n"

示例 - 嵌套 Do While For 循环

[编辑 | 编辑源代码]

请输入您要乘以的数字 3 您要乘以的常数 2 2 x 1 = 2 2 x 2 = 4 2 x 3 = 6 您要进行另一组运算吗?输入 yes 或 no 好的,再见

以下是上述示例的伪代码

Function Main
    Declare Integer answer
    Declare Integer multiply
    Declare Integer constant
    Declare String choice
    
    Loop
        Output "Please input what number you want to multiply"
        Input multiply
        Output "What number do you want constant"
        Input constant
        Declare Integer i
        
        Assign i = 0
        For i = 1 to multiply
            Assign answer = i * constant
            Output constant & " x " & i & " = " & answer
        End
        Output "Would you like another set? Type yes"
        Input choice
    Do choice == "Yes"
    Output "Ok bye"
End

关键词

[编辑 | 编辑源代码]
复杂逻辑
通常用嵌套控制结构解决。

参考文献

[编辑 | 编辑源代码]
华夏公益教科书