周期。带参数的循环 (for)


想象一下我们需要在屏幕上显示同一个词的情况,比方说“HELLO”这个词 10 次。我们该怎么办?
您可以将命令写入 10 次 writeln('HELLO');

但是,如果您不需要 10 次,而是 20、30、40 次,如果需要 200 次呢?在这种情况下,复制将花费很长时间。如果需要用户可以选择在屏幕上显示多少次信息? 

为了完成这个任务,我们可以使用一种叫做LOOP
的特殊结构
循环是一种算法构造,其中特定的命令序列被重复多次。


在 Pascal 编程语言中,有两种循环:带变量的循环 (for) 和带条件的循环 (while)

让我们从第一种类型开始认识循环。

使用变量或已知步数循环(FOR)

经常发生的情况是,我们知道某些动作的重复次数,或者我们可以使用我们已知的数据来计算重复次数。一些编程语言有一个命令,在俄语中听起来像 REPEAT(次数)——也就是说,我们可以指定重复的确切次数。 

有趣的是看看这个循环在机器级别是如何工作的:
1、在内存中分配一定的内存单元,并写入重复次数,
2. 当程序执行一次循环体时,这个单元格(计数器)的内容减一。
3.当这个单元格为零时,循环执行结束。

在编程语言 Pascal 中,没有这样的构造,但是有一个 for 构造。  

for循环语句的一般形式如下: <前> <代码>对于*开始值*到*结束值*做 开始 /*一个语句或语句块 - 循环体*/; 结束; 这个构造需要我们
1.显式分配一个内存单元,这将是一个计数器,并设置它的初始值
2. 指定此单元格中的值将如何更改。
3. 写了循环体执行的条件

在实践部分,我们将尝试显示 10 次 Hello 一词。在接下来的任务中,我们将更详细地分析这个结构。

for 循环是一种逐步执行重复操作的方法。让我们仔细看看它是如何工作的。

通常,for 循环的一部分执行以下步骤: 
<分区>1。设置初始值。 
2.设置循环变量变化的步长
<分区>3。设置结束值。
<分区>3。执行循环操作。
<分区>4。更新测试中使用的值。 
然后重复步骤2-4,直到满足条件。一旦条件变为假,循环终止并执行 for 循环语句之后的语句。

让我们回到循环语句的一般形式,更详细地分析所有部分 <前> <代码>对于 *set initial value to variable* to/downto *end value* do begin /*一个语句或语句块 - 循环体*/; 结束;

将变量设置为初始值

负责设置循环变量(计数器)的初始值,不是用括号或其他东西突出
例如 : <前> 我:= 0; // 循环变量 i 被赋予了等于零的初始值。有了这样的记录, //变量i必须在循环之前声明 到/下到 <前> 这是循环中使用的变量将更改的步骤。如果我们写入,那么每次迭代变量的值将增加 1,如果向下 - 减少 1 <前> 终值 是循环主体仍将执行的最后一个值。例如,如果我们将最后一个值设置为 100,那么在 100 时我们的循环仍将执行,而在 101 时则不会。 让我们练习写for循环的标题

Pascal 中 for 循环的头部由几个部分组成:
1) 单词 for
2) 我们要分配什么变量和什么值。在这个程序中,这是 b := 1,即我们将值 1 赋给 b。
3)单词 to downto,表示循环执行的步骤。如果我们写为to,那么变量每次迭代都会加1,如果写为downto,则减1。
4) 变量的最终值
5) 单词 
6)单词 begin (如果循环体只有一行可以省略,否则必须写。如果不写begin,那么只有第一行会从整个循环体执行)。我们不要忘记在循环体之后,如果我们写了 begin 这个词,写下 end; !

到目前为止,我们编写的所有带有 for 循环的程序都不能称为通用的。因为我们自己设定了循环体的重复次数。 
但是,如果重复次数取决于其他值怎么办?比如用户自己想设置循环的重复次数。
这种情况怎么办?
一切都很简单。我们可以使用任何可以由用户计算或设置的变量,而不是数字开始值和结束值。

例如,我们需要显示从 1 到 n 的数字的平方,其中变量 n 的值是由用户从键盘输入的。
该程序将如下所示:
  <前> var i, n : 整数; // 我 –循环变量,n - 我们计算平方的最大数 开始 阅读(n); // 从键盘输入 n for i := 1 to n do // 循环:for all i from 1 to n - 变量 i 将依次取值从 1 到 n writeln('Kvadrat chisla ', ' raven ', i * i); // 以特定格式输出数字的平方并移至新行 结尾。 当进入循环时,语句 i := 1 被执行,然后变量 i 每一步递增 1 (to)。当条件 i <= n 为真时执行循环。在循环体中,唯一的输出语句根据指定格式在屏幕上打印数字本身及其正方形。
对于平方或其他低指数,最好使用乘法。

运行程序并查看其对变量 n 的不同值的处理结果。