分享

2.4.4 程序控制结构(1)

 FansLIB58 2014-02-23

2.4.4  程序控制结构(1)

如果程序只能顺序执行,那么程序的功能和效率将会受到极大地影响。实际上,程序在执行过程中,可以根据需要改变程序的执行顺序。程序有3种基本结构类型,即顺序结构、条件分支结构和循环结构。下面主要介绍GOTO语句、条件分支语句和循环语句的特点。除了这里介绍的程序控制结构之外,还有其他一些程序控制结构,例如异常处理等。

1. GOTO语句

GOTO语句是高级程序设计语言使用的控制程序执行顺序的基本语句。使用GOTO语句可以将程序转移到相应的语句位置。语句位置使用标号表示,标号是位于指定位置的标明语句的数字或标识符。

例如,在下面的BASIC语言示例中,通过使用GOTO 10语句,使得语句在执行到标号为30的语句时转到执行标号为10的语句:

  1. 10 LET X = 3 
  2. 20 PRINT X  
  3. 30 GOTO 10 

通过灵活地使用GOTO语句,可以在程序中实现条件分支结构和循环结构。但是,GOTO语句也存在许多问题:GOTO语句使得整个程序形成一个整体结构,程序转移方向随意导致执行过程不易阅读,程序关联性强导致程序修改困难。因此,在许多语言中已经不建议使用GOTO语句。

2. 条件分支结构

条件分支结构是指根据条件表达式的结果来判断和选择执行语句的程序结构。if-then-else结构是大多数的程序设计语言所使用的条件分支结构。这种结构的基本语法格式如下,其流程图如图2-2所示。

  1. If (condition_expression) Then  
  2.    (true_statements)  
  3. Else  
  4.    (false_statements)  
  5. End If 

 
(点击查看大图)图2-2  if-then-else结构流程图
除了基本的if-then-else结构之外,还有其他一些条件分支结构。许多语言的条件分支结构中支持else if子句。通过在if-then-else中增加else if子句,可以合并多个条件判断。在这种情况下,只有满足条件的语句才会被执行,其他语句都被跳过。包含else if子句的条件分支结构语句如下。
  1. if condition_expression_1 then  
  2.     -- statements_1;  
  3. elseif condition_expression_2 then  
  4.     -- statements_2;  
  5. elseif condition_expression_3 then  
  6.     -- statements_3;  
  7. ...  
  8. else condition_expression_n then  
  9.     -- statements_n;  
  10. end if; 

在一些指令式程序设计语言中,例如C、C++、Java、C#、Pascal语言中,使用switch语句来控制程序结构。switch语句使用变量或表达式的值来控制程序的执行过程。

在switch语句中,有3个常用的关键字,case、default和break。switch语句的case关键字用于指定其中的一个条件;default关键字可以用来执行不满足所有case关键字指定的值时需要执行的语句;break关键字用于表示条件块的结束,当执行到break语句时则退出switch语句的执行。

在C、C++、Java语言中,使用switch语句的示例如下。在这个示例中,如果输入数字0,则显示"你输入的数字是0",然后退出switch语句的执行。无论是输入1还是2,都显示"你输入的数字是1或2"。如果输入的数字是3,则比较复杂,首先会显示"你输入的数字是3",然后显示"你输入的数字是4或5",这是因为case 3的puts语句后面没有break语句。如果输入的数字不是0-5,则显示"你输入的数字不符合要求"。

  1. switch (n) {  
  2.   case 0:  
  3.     puts("你输入的是数字0");  
  4.     break;  
  5.   case 1:  
  6.   case 2:  
  7.     puts("你输入的数字是1或2");  
  8.     break;  
  9.   case 3:  
  10.     puts("你输入的数字是3");  
  11.   case 4:  
  12.   case 5:  
  13.     puts("你输入的数字是4或5");  
  14.     break;  
  15.   default:  
  16.     puts("你输入的数字不符合要求");  
  17.     break;  

在不同的语言中,switch语句的用法也不完全相同。Pascal语言称其为case语句,Visual Basic语言称其为Select Case语句。在Pascal语言中,使用case关键字来代替了switch关键字,使用else代替default关键字,如图2-3(a)所示。而在Visual Basic语言中,没有switch关键字,代替default关键字的是Case Else关键字,如图2-3(b)所示。Ruby语言中则使用when关键字作为情景判断,如图2-3(c)所示。

 
(点击查看大图)图2-3  不同语言的switch语句的用法

【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多