11.4 更多可变嵌套循环

代码清单 11-4 是代码清单 11-3 的一个更复杂的版本。

代码清单 11-4 更复杂的星号块

{%}

输出如下:

  1. >>> ======================= RESTART =======================
  2. >>>
  3. How many blocks of stars do you want? 3
  4. * * * *
  5. * * * * *
  6. * * * * * * *
  7. * * * * * * * * *
  8. * * * * * * *
  9. * * * * * * * * *
  10. * * * * * * * * * * *
  11. * * * * * * * * * * * * *
  12. * * * * * * * * * * * * * * *

代码清单 11-4 中,外循环的循环变量用来为内循环设置范围。所以每个星号块不再有相同的行数,而且每一行也不再有相同的星号数,每次循环时行数和星号数都不同。

你希望循环嵌套多深,就可以有多深。要明白这样的嵌套循环会让人很头疼,所以有时打印出循环变量的值会很有帮助,如代码清单 11-5 所示。

代码清单 11-5 在嵌套循环中打印循环变量

{%}

以下是这个程序的输出:

  1. >>> ======================= RESTART =======================
  2. >>>
  3. How many blocks of stars do you want? 3
  4. block = 1
  5. * * * line = 1 star = 3
  6. block = 2
  7. * * * * * line = 1 star = 5
  8. * * * * * * * line = 2 star = 7
  9. * * * * * * * * * line = 3 star = 9
  10. block = 3
  11. * * * * * * * line = 1 star = 7
  12. * * * * * * * * * line = 2 star = 9
  13. * * * * * * * * * * * line = 3 star = 11
  14. * * * * * * * * * * * * * line = 4 star = 13
  15. * * * * * * * * * * * * * * * line = 5 star = 15

在很多情况下,而不只限于在循环中,打印变量的值都会对你很有帮助。这也是最常用的调试方法之一。

{%}