Computer Programming 简明教程
Computer Programming - Loops
我们考虑一下一个你想打印 Hello, World! 五次的情况。这里有一个简单的 C 程序来实现 -
#include <stdio.h>
int main() {
printf( "Hello, World!\n");
printf( "Hello, World!\n");
printf( "Hello, World!\n");
printf( "Hello, World!\n");
printf( "Hello, World!\n");
}
当执行上述程序时,它将生成以下结果 −
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
这很简单,但再考虑一下你想写 Hello, World! 一千次的情况。我们肯定无法写一千次 printf() 语句。几乎所有编程语言都提供了一个称为 loop 的概念,它有助于执行一条或多条语句直至达到所需次数。所有高级编程语言都提供各种形式的循环,可用于重复执行一条或多条语句。
让我们借助一个 while loop 来编写上述 C 程序,稍后我们将讨论这个循环如何工作
#include <stdio.h>
int main() {
int i = 0;
while ( i < 5 ) {
printf( "Hello, World!\n");
i = i + 1;
}
}
当执行上述程序时,它将生成以下结果 −
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
上述程序使用了一个 while loop ,该 while loop 用于执行用 {….} 括起来的一组编程语句。在这里,计算机首先检查给定的条件(即,变量 “a” 是否小于 5),如果发现条件为真,则进入循环体来执行给定的语句。这里,我们在循环体中使用以下两个语句 -
-
第一条语句是 printf() 函数,它打印 Hello World!
-
第二条语句是 i = i + 1,它用于增加变量 i 的值
在执行了循环体中给出的所有语句之后,计算机会返回 while( i < 5) ,并再次检查给定的条件 (i < 5),如果该条件为真,则再次执行循环。此过程一直重复,直到给定的条件仍然为真,这意味着变量 “a” 的值小于 5。
总之,循环语句允许我们多次执行一条或多条语句。下面给出的是大多数编程语言中循环语句的一般形式 -
本教程旨在向非程序员介绍编程的基本概念,因此,让我们讨论 C 编程语言中可用的两个最重要的循环。一旦你清楚了这两个循环,那么你可以选用 C 编程教程或参考书,并查看 C 中可用的其他循环以及它们的工作方式。
The while Loop
C 编程语言中可用的 while loop 具有以下语法 -
while ( condition ) {
/*....while loop body ....*/
}
上面的代码可以用流程图的形式表示,如下所示 -
关于 while 循环需要了解以下重点 -
-
while 循环以关键字 while 开头,后面跟着用 ( ) 括起来的一个 condition 。
-
在 while() 语句之后,你将用大括号 {…​} 括出循环体。
-
while 循环体中可以包含一行或多行要重复执行的源代码。
-
如果 while 循环体只有一行,则可以使用花括号 {…​} 也是可选的。
-
while 循环会一直执行该主体,直到给定的 condition 成立。只要条件变为 false,while 循环就会结束,并从紧跟 while 循环体后的紧接语句继续执行。
-
一个条件通常是一个关系语句,其结果为 true 或 false。值为零被视为 false,对于任何非零值都像 true。
The do…while Loop
while 循环在执行主体部分的任何语句之前都会检查给定的条件。C 编程提供另一种称为 do…while 的循环形式,它允许在检查给定条件之前先执行一次循环体。其语法如下:
do {
/*....do...while loop body ....*/
}
while ( condition );
上面的代码可以用流程图的形式表示,如下所示 -
如果使用 do…while 循环编写上述示例,则 Hello, World 将生成相同的结果:
#include <stdio.h>
int main() {
int i = 0;
do {
printf( "Hello, World!\n");
i = i + 1;
}
while ( i < 5 );
}
当执行上述程序时,它将生成以下结果 −
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
The break statement
当在循环内部遇到 break 语句时,循环将立即终止,程序控制将从紧接循环后的下一条语句恢复。C 中 break 语句的语法如下:
break;
break 语句可以用流程图的形式表示,如下所示:
以下是上述程序的一个变体,但它只打印三次 Hello World!就会退出:
#include <stdio.h>
int main() {
int i = 0;
do {
printf( "Hello, World!\n");
i = i + 1;
if( i == 3 ) {
break;
}
}
while ( i < 5 );
}
当执行上述程序时,它将生成以下结果 −
Hello, World!
Hello, World!
Hello, World!
The continue statement
C 编程语言中的 continue 语句在某种程度上类似于 break 语句。 continue 不是强制终止,而是强制执行循环的下一次迭代,跳过其间的任何代码。C 中 continue 语句的语法如下:
continue;
continue 语句可以用流程图的形式表示,如下所示:
以下是上述程序的一个变体,但当变量的值等于 3 时,它会跳过打印:
#include <stdio.h>
int main() {
int i = 0;
do {
if( i == 3 ) {
i = i + 1;
continue;
}
printf( "Hello, World!\n");
i = i + 1;
}
while ( i < 5 );
}
当执行上述程序时,它将生成以下结果 −
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Loops in Java
以下是用 Java 编写的等效程序,它也支持 while 和 do…while 循环。以下程序像我们在 C 编程中的情况一样打印 Hello, World! 五次:
您可以尝试执行以下程序以查看输出,其必须与上述示例生成的结果相同。
public class DemoJava {
public static void main(String []args) {
int i = 0;
while ( i < 5 ) {
System.out.println("Hello, World!");
i = i + 1;
}
}
}
Java 编程中的 break 和 continue 语句的工作方式与它们在 C 编程中的工作方式完全相同。
Loops in Python
以下是用 Python 编写的等效程序。Python 也支持 while 和 do…while 循环。以下程序像我们在 C 编程中的情况一样打印 Hello, World! 五次。这里必须注意,Python 不使用花括号作为循环体,而是简单地使用语句缩进识别循环体。
你可以尝试执行以下程序查看输出。为了显示差异,我们使用了一条额外的 print 语句,当循环结束时它将被执行。
i = 0
while (i < 5):
print "Hello, World!"
i = i + 1
print "Loop ends"
当执行上述程序时,它将生成以下结果 −
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Loop ends
Python 中的 break 和 continue 语句的工作方式与它们在 C 编程中的工作方式完全相同。