学学习网 手机版

学学习网

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

第三节 结构程序设计

设置字体:
----------------------------------

控制结构(Control Structures)

一个程序的语句往往并不仅限于线性顺序结构。在程序的执行过程中它可能被分成两支执行,可能重复某些语句,也可能根据一些判断结果而执行不同的语句。因此C++ 提供一些控制结构语句 (control structures) 来实现这些执行顺序。
为了介绍程序的执行顺序,我们需要先介绍一个新概念:语句块(block of instructions)。一个语句块(A block of instructions) 是一组互相之间由分号semicolons (;) 分隔开但整体被花括号curly bracket signs: { and }括起来的语句。
本节中我们将看到的大多数控制结构允许一个通用的statement做参数,这个statement根据需要可以是一条语句,也可以是一组语句组成的语句块。如果我们只需要一条语句做statement,它可以不被括在花括号 ({}) 内。但如果我们需要多条语句共同做statement,则必须把它们括在花括号内 ({}) 以组成一个语句块。
 

条件结构Conditional structure: if and else

条件结构用来实现仅在某种条件满足的情况下才执行一条语句或一个语句块。它的形式是:
if (condition) statement
这里 condition 是一个将被计算的表达式(expression)。如果表达式值为真,即条件(condition)为true,statement 将被执行。否则,statement 将被忽略(不被执行),程序从整个条件结构之后的下一条语句继续执行。
例如,以下程序段实现只有当变量x存储的值确实为100的时候才输出"x is 100":
if (x == 100)
cout << "x is 100";
如果我们需要在条件condition为真true的时候执行一条以上的语句,我们可以花括号{}将语句括起来组成一个语句块:
if (x == 100)
{
cout << "x is ";
cout << x;
}
我们可以用关键字else 来指定当条件不能被满足时需要执行的语句,它需要和if 一起使用,形式是:
if (condition) statement1 else statement2
例如:
if (x == 100)
cout << "x is 100";
else
cout << "x is not 100";
以上程序如果x的值为100,则在屏幕上打出x is 100,如果x不是100,而且也只有在x不是100的时候,屏幕上将打出x is not 100。
多个if + else 的结构被连接起来使用来判断数值的范围。以下例子显示了如何用它来判断变量 x中当前存储的数值是正值,负值还是既不正也不负,即等于0 。
if (x > 0)
cout << "x is positive";
else if (x < 0)
cout << "x is negative";
else
cout << "x is 0";
记住当我们需要执行多条语句时,必须使用花括号{}将它们括起来以组成一个语句块block of instructions。
 

重复结构 Iteration structures 或循环loops

循环Loops 的目的是重复执行一组语句一定的次数或直到满足某种条件。

while 循环

格式是:
while (表达式expression) 语句statement
它的功能是当expression 的值为真true时重复执行statement。
例如,下面我们将用while循环来写一个倒计数程序:
// custom countdown using while
#include <iostream.h>
int main ()
{
int n;
cout << "Enter the starting number > ";
cin >> n;
while (n>0) {
cout << n << ", ";
--n;
}
cout << "FIRE!";
return 0;
}
Enter the starting number > 8
8, 7, 6, 5, 4, 3, 2, 1, FIRE!
程序开始时提示用户输入一个倒计数的初始值。然后while 循环开始,如果用户输入的数值满足条件n>0 (即 n 比0 大),后面跟的语句块将会被执行一定的次数,直到条件 (n>0) 不再满足(变为false)。
以上程序的所有处理过程可以用以下的描述来解释:
main开始:
  1. 用户输入一个数值赋给n.
  2. while语句检查(n>0)是否成立,这时有两种可能:
    • true: 执行statement (到第3步)
    • false: 跳过statement. 程序直接执行第5步.
  3. 执行statement:
    cout << n << ", ";
    --n;
(将n 的值打印在屏幕上,然后将n 的值减1).
  1. 语句块结束,自动返回第2步。
  2. 继续执行语句块之后的程序:打印 FIRE! ,程序结束。
----------------------------------
课程列表
重点难点
赞助链接