跳至内容

应用编程/循环

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

本课介绍循环,包括 while、for、do 等循环。循环允许您在代码中重复类似的操作。循环会执行一段代码块,直到循环遍历完一个对象为止。在 for 循环中,如将进一步解释的那样,循环将运行,直到它遍历完可迭代对象中的每个项目为止。for 循环有助于减少代码中的重复,因为它们允许您多次执行相同的操作。所有循环都是旨在重复执行的指令序列,直到满足或实现某个条件为止。循环只需要编写一次,但可能重复多次。因此,它们用于根据程序的任务多次执行某些任务,避免在程序中创建额外的、不必要的步骤。[1]

什么是循环

[编辑 | 编辑源代码]

循环是许多程序的基本结构。实际上,除最基本的程序之外,所有程序都可能至少包含一个循环。循环非常有用,可以为开发人员节省大量时间。[2]

我们可以详细说明节省时间的这一部分。让我们考虑这样一种情况:您想打印 Hello, World! 五次。

 print("Hello, World!")
 print("Hello, World!")
 print("Hello, World!")
 print("Hello, World!")
 print("Hello, World!")

输出

Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!

这很简单,但同样地,让我们考虑另一种情况,您想写 Hello, World! 一千次。我们当然不能写一千次 print() 语句。几乎所有编程语言都提供了一个名为循环的概念,它有助于将一个或多个语句执行到所需的次数。所有高级编程语言都提供各种形式的循环,这些循环可用于重复执行一个或多个语句。[3]

循环结构

[编辑 | 编辑源代码]

它们允许您重复运行一行或多行代码。您可以重复循环结构中的语句,直到条件为 True 为止,直到条件为 False 为止,执行指定的次数,或者对集合中的每个元素执行一次。[4]

以下属于循环结构

  • while 循环
  • do-while 循环
  • for 循环
  • break 语句
  • continue 语句[5]

循环类型

[编辑 | 编辑源代码]

for 循环

[编辑 | 编辑源代码]

它使特定的一组条件能够重复执行,直到满足某个条件为止。[6] 下面是 for 循环的示例

  for x in range(0, 3):
    print("We're on time %d" % (x))

Python for 语句按顺序遍历序列的成员,每次执行代码块。它们通常用于您希望重复执行一段代码块的固定次数的情况。[7]

while 循环

[编辑 | 编辑源代码]

while 循环在满足或遵循特定条件时实现。只要条件语句不满足,就可以终止 while 循环。换句话说,当 while 循环的测试表达式变为 false 时,会忽略 while 循环内部的代码,并立即执行以下代码。 [8]

 #While loop Format
   While ''Expression''
      ''Statement''

实现 while 循环的另一种方法是控制重复次数。可以通过控制变量来确定 while 的重复次数。

 #While loop repetition Format
  n = 0  #repetition control variable
  While (n < 5): n = n + 1; # the repetition of the loop is limited to 5 times, incrementing by 1 each time.
  Statement
	
 #While loop repetition example
  n = 0
  while (n < 5): n = n + 1; print(Welcome to CIS206)

输出给出以下结果

 Welcome to CIS206
 Welcome to CIS206
 Welcome to CIS206
 Welcome to CIS206
 Welcome to CIS206

在 while 循环操作中,有两个不同的控制表达式:“break” 和“continue”。[9] breakcontinue 的使用允许 while 循环内部存在多个条件语句。break 会立即终止 while 循环。continue 会切换到备选条件语句,只要原始 while 循环的条件语句为 True 即可。

 #While loop - Break example
  n = 3
  while n > 0:
    n = n + 1
    if n == 1:
      break  #break is engaged if the while loop is repeated once
    print (n)
  print('Loop is terminated')

 #While loop - Continue example
  n = 3
  while n > 0:
   n = n + 1
   if n == 2:
     continue #continue is engaged if the while is repeated twice
    print (n)
   print('Loop is terminated')

do-while 循环

[编辑 | 编辑源代码]

do-while 与普通 while 循环有明显的区别。区别在于 do-while 至少执行一次。[10] do-while 循环以条件语句开头。

 #Do-while loop template
  n = 0 #number of repetition controller
  while True:
    print(n)
    n = n + 1 
    if (n > 5);
       break #when the execution is repeated five times, the while operation is terminated

无限循环

[编辑 | 编辑源代码]

无限循环(有时称为无休止循环)是一段代码,它没有功能性退出,因此会无限期地重复。通常,会执行某个过程,例如获取数据项并更改它,然后检查某个条件,例如计数器是否已达到规定的数量。如果无法确定指定条件的存在,则序列中的下一条指令会告诉程序返回到第一条指令并重复序列,这通常会持续到程序在一定持续时间后自动终止,或者操作系统终止程序并出现错误。[11]

在大多数情况下,无限循环并非有意为之,而是编程不当的结果。但是,存在需要有意使用无限循环的情况。最常见的发生情况是现代计算机。现代交互式计算机要求计算机不断监控用户输入或设备活动,因此在某些基本层面上,必须存在一个无限的空闲处理循环,该循环必须持续到设备关闭或重置为止。[12]

    apples = 4
    while apples > 3:
        print("You have " + apples + " apples.")
        apples = apples + 1
    ''You have 4 apples.''
    ''You have 5 apples.''
    ''You have 6 apples.''
    ''You have 7 apples.''
    ''You have 8 apples.''
    ''...''

在上面的示例中,循环旨在在苹果数量在 3 个或以下时中断。但是,变量“apples”从 4 开始。每次循环迭代时,“apples”都会增加 1。在这种情况下,“apples”永远不会降至零,并且循环会无限期地重复。

    while True:
        print("This statement is true")
    else:
        print("This statement is not true")
    ''This statement is true''
    ''This statement is true''
    ''This statement is true''
    ''This statement is true''
    ''...''

在这个示例中,程序员未能创建break 语句来退出循环。由于没有 break 语句或任何会导致循环为“false”的代码,因此循环会无限期地重复。

嵌套循环

[编辑 | 编辑源代码]

当一个循环放在另一个循环的主体内部时,就会发生嵌套循环。内部循环在每次执行外部循环时都会执行。

    i = 1
    j = 5
    while i < 4:
        while j < 8:
            print(i, ",", j)
            j = j + 1
            i = i + 1
    ''1 , 5''
    ''2 , 6''
    ''3 , 7''

[13]

上面的函数包含两个“while”循环;一个嵌套在另一个内部。外部循环首先执行,其中“i”小于 4。这会导致内部循环执行,其中“j”小于 8。当“i”不再小于 4 时,函数就会中断;在第四次迭代时。

循环关键字

[编辑 | 编辑源代码]

break 语句 - 此语句会终止包含它的循环。程序控制流向循环主体后的语句。如果该语句位于嵌套循环(循环在另一个循环内部)中,则该语句将终止最内层的循环。

条件 - 循环检查此语句以确定是否应该再次循环或停止循环。 它是满足特定条件时执行的一组规则。 它有时被称为 If-Then 语句,因为如果满足条件,则执行操作。

继续语句 - 此语句用于循环内部。 当在循环中遇到此语句时,控制跳转到循环的开头进行下一次迭代,跳过当前迭代循环体内语句的执行。

计数控制 - 循环中,变量(如计数器)决定循环运行的次数。

Do-While 循环 - Do-while 循环是一种控制流语句,它至少执行一次代码块,然后根据代码块末尾给定的布尔条件重复执行代码块,或不执行。

退出 - 用于过早停止程序并返回到操作系统的预定义函数。 用于完成或退出封闭循环语句的执行。 如果语句包含条件,则退出循环是条件性的。

标志 - 通常用于控制或指示特定操作的中间状态或结果。 它是充当函数或进程信号的值。 该值用于确定程序的下一步。

For 循环 - For 循环是一种用于指定迭代的控制流语句,它允许重复执行代码。 For 循环有两个部分:一个指定迭代的标题,以及一个在每次迭代中执行一次的代码体。

ForEach 循环 - ForEach(或 foreach,有时称为迭代 for 循环)是一种用于遍历集合中项目的控制流语句。

Goto - 一个非结构化分支命令,使程序中的逻辑跳转到不同的位置。

无限循环(或无休止循环) - 计算机程序中的一系列指令,这些指令无限循环,要么是因为循环没有终止条件,要么是因为终止条件永远无法满足。

迭代控制结构 - 直到程序达到特定状态或对集合或数组的每个元素都应用了操作,才会执行的语句或代码块。

循环计数器 - 控制循环迭代的变量(一种计算机编程语言构造)。 它的名称来源于大多数情况下,此构造的结果是变量以某种有序序列取出一系列整数值。

嵌套循环 - 循环内的循环。 内部循环将根据外部循环的迭代次数重复。

Pass 语句 - 此语句用作将来代码的占位符。 当执行此语句时,不会发生任何事情;但是,当不允许使用空代码时,可以避免出现错误。

Raise - 此关键字用于引发异常。 您可以定义要引发的错误类型以及要打印给用户的文本。

Return - 一个分支语句,它会导致函数跳转回调用它的函数。 允许它也用作退出循环的一种方式。 Return 语句从函数中返回偶尔的结果,或者只是完成函数。 在任何函数的末尾都有一个隐式返回,因此如果您的函数以自然方式结束,而没有返回值,则不需要使用它。

哨兵值 - 它是在使用其存在作为终止条件的算法的上下文中的一种特殊值,通常在循环或递归算法中。 该值是一种带内数据形式,使得当没有带外数据(例如显式大小指示)提供时,可以检测数据的结束。

While 循环 - While 循环是一种控制流语句,它允许根据给定的布尔条件重复执行代码。

参考资料

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