设为首页 加入收藏

TOP

3.1.2 复合语句
2013-10-07 15:17:11 来源: 作者: 【 】 浏览:64
Tags:3.1.2 复合 语句

3.1.2   复合语句

教学录像:光盘\TM\lx\3\复合语句.exe

复合语句也称为语句块,它是由“{”和“}”符号以及多条语句所构成的。在开发程序时,单一的一条语句不能完成一项逻辑功能,通常要将多条语句组合为复合语句来实现。例如:

  1. 01   if (x > y)  
  2. 02   {  //开始一条复合语句  
  3. 03     cout<<"x大于y\n";  
  4. 04     cout<<"表达式的值为真\n";  
  5. 05   }  //复合语句结束  
  6. 06   else  
  7. 07   {  //开始一条复合语句  
  8. 08     cout<<"x不大于y\n";  
  9. 09     cout<<"表达式的值为假\n";  
  10. 10   }  //复合语句结束 

在使用“{”和“}”符号设计复合语句时,复合语句中也可以不包含代码,此时的复合语句与空语句的作用是相同的。例如:
  1. {} 

上述代码定义了一个空的复合语句,在程序中可以使用空复合语句来代替空语句。在使用复合语句时,需要注意“}”符号之后没有分号。下面的复合语句是非法的。
  1. 01   {  
  2. 02     cout<<"x大于y\n";  
  3. 03     cout<<"表达式的值为真\n";  
  4. 04   }; 

在使用复合语句时,需要注意的是在复合语句中定义的变量,其作用域的范围应在当前定义变量处到复合语句的结束处。分析下面的代码:
  1. 05   {  //复合语句开始  
  2. 06     int ivar = 1;    //定义一个整型变量  
  3. 07   }  //复合语句结束  
  4. 08   cout<<ivar;    //错误的代码,ivar没有标识 

在上述代码中,在复合语句中定义了变量ivar,但是在复合语句之外访问了变量ivar,因此会出现编译错误。如果将上述代码修改为如下形式,则不会出现编译错误。
  1. 01   int ivar = 0;  //定义一个整型变量ivar,初始化为0  
  2. 02   {  
  3. 03     int ivar = 1;    //定义一个整型变量ivar,初始化为1  
  4. 04     cout<<ivar;  //输出语句  
  5. 05   }  
  6. 06   cout<<ivar;    //输出语句 

在上述代码中,定义了两个同名的整型变量ivar,其中在复合语句中输出的ivar值为1,在复合语句之外输出的ivar值为0。在复合语句内部定义了与外部同名的变量时,其复合语句内部的变量将会取代外部的变量。

复合语句是可以嵌套的。观察如下代码:

  1. 01   int ivar = 0;  //定义一个整型变量ivar,初始化为0  
  2. 02   {  //外层复合语句  
  3. 03     int ivar = 1;    //定义一个整型变量ivar,初始化为1  
  4. 04     {    //内层复合语句  
  5. 05          ivar = 2;   //设置ivar的值为2  
  6. 06          cout<<ivar; //内层复合语句输出ivar  
  7. 07     }  
  8. 08   }  
  9. 09   cout<<ivar;    //输出ivar 

在上面的代码中,内层复合语句输出的ivar值为2,而复合语句之外的输出语句输出的ivar值为0。对于内层嵌套的复合语句来说,它访问的变量是外层复合语句中定义的变量ivar(其值初始化为1)。

试一试:把以上程序段补充完整,并上机调试运行。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇3.2 顺序语句实例 下一篇遇见C++ Lambda

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: