学学习网 手机版

学学习网

学习路径: 学习首页 > 应用开发 > c++ >

第三节 结构程序设计(2)

设置字体:
----------------------------------
我们必须考虑到循环必须在某个点结束,因此在语句块之内(loop的statement之内) 我们必须提供一些方法使得条件condition 可以在某个时刻变为假 false,否则循环将无限重复下去。在这个例子里,我们用语句--n;使得循环在重复一定的次数后变为false :当 n 变为0, 倒计数结束。

do-while 循环

格式:
do 语句statement while (条件condition);
它的功能与while 循环一抹一样,除了在do-while循环中是先执行statement 然后才检查条件condition ,而不想while循环中先检查条件然后才执行statement。这样,即使条件condition从来没有被满足过,statement 仍至少被执行一次。例如,下面的程序重复输出(echoes)用户输入的任何数值,直到用户输入0为止。
// number echoer
#include <iostream.h>
int main ()
{
unsigned long n;
do {
cout << "Enter number (0 to end): ";
cin >> n;
cout << "You entered: " << n << "\n";
} while (n != 0);
return 0;
}
Enter number (0 to end): 12345
You entered: 12345
Enter number (0 to end): 160277
You entered: 160277
Enter number (0 to end): 0
You entered: 0
do-while 循环通常被用在判断循环结束的条件是在循环语句内部被决定的情况下,比如以上的例子,在循环的语句块内用户的输入决定了循环是否结束。如果用户永远不输入0,则循环永远不会结束。

for 循环

格式是:
for (initialization; condition; increase) statement;
它的主要功能是当条件condition 为真true时重复执行语句statement ,类似while 循环。但除此之外,for 还提供了写初始化语句initialization 和增值语句increase 的地方。因此这种循环结构是特别为执行由计数器控制的循环而设计的。
它按以下方式工作:
  1. 执行初始化initialization 。通常它是设置一个计数器变量(counter variable)的初始值,初始化仅被执行一次。
  2. 检查条件condition ,如果条件为真true,继续循环,否则循环结束循环中语句statement 被跳过。
  3. 执行语句statement 。像以前一样,它可以是一个单独的语句,也可以是一个由花括号{ }括起来的语句块。
  4. 最后增值域(increase field)中的语句被执行,循环返回第2步。注意增值域中可能是任何语句,而不一定只是将计数器增加的语句。例如下面的例子中计数器实际为减1,而不是加1。
下面是用for循环实现的倒计数的例子:
// countdown using a for loop
#include <iostream.h>
int main ()
{
for (int n=10; n>0; n--) {
cout << n << ", ";
}
cout << "FIRE!";
return 0;
}
10, 9, 8, 7, 6, 5, 4, 3, 2, 1, FIRE!
初始化initialization 和增值increase 域是可选的(即可以为空)。但这些域为空的时候,它们和其他域之间间隔的分号不可以省略。例如我们可以写:for (;n<10;)来表示没有初始化和增值语句;或for (;n<10;n++) 来表示有增值语句但没有初始化语句。
另外我们也可以在for循环初始化或增值域中放一条以上的语句,中间用逗号 coma(,)隔开。例如假设我们想在循环中初始化一个以上的变量,可以用以下的程序来实现:
for ( n=0, i=100 ; n!=i ; n++, i-- )
{
// whatever here...
}
这个循环将被执行50 次,如果n 和i 在循还内部都不被改变的话:
http://www.prglab.com/cms/media/images/cplusplus/img2-1-1.gif
n初始值为0i初始值为100,条件是(n!=i)(即n不能等于i)。因为每次循环n1,而且i1,循环的条件将会在第50次循环之后变为假falseni 都等于50)。

分支控制和跳转(Bifurcation of control and jumps)

break 语句

通过使用
----------------------------------
课程列表
重点难点
赞助链接