设为首页 加入收藏

TOP

3.1.2 嵌套的if语句(2)
2013-10-07 16:06:14 来源: 作者: 【 】 浏览:90
Tags:3.1.2 语句

3.1.2  嵌套的if语句(2)

扩展的if语句

迄今为止,我们所使用的if语句都仅在指定的条件返回true时才执行某些语句,之后,程序将按顺序执行下一条语句。另一种if版本是条件返回true时执行一条语句,而条件返回false时执行另一条语句。之后,程序将按顺序执行下一条语句。如第2章中所述,语句块总是能够代替一条语句,该原则同样适用于if语句。

试一试:扩展的if语句

下面的示例包含扩展的if语句:

  1. // Ex3_02.cpp  
  2. // Using the extended if  
  3. #include <iostream> 
  4. using std::cin;  
  5. using std::cout;  
  6. using std::endl;  
  7. int main()  
  8. {  
  9. long number(0L); // Store input here  
  10. cout << endl 
  11. << "Enter an integer number less than 2 billion: ";  
  12. cin >> number;  
  13. if(number % 2L) // Test remainder after division by 2  
  14. cout << endl // Here if remainder 1  
  15. << "Your number is odd." << endl;  
  16. else  
  17. cout << endl // Here if remainder 0  
  18. << "Your number is even." << endl;  
  19. return 0;  
  20. }  

该程序的输出如下:

  1. Enter an integer less than 2 billion: 123456  
  2. Your number is even. 

示例说明

将输入值读入number之后,我们通过求出除以2之后的余数(使用第2章学习的求余数运算符%)来测试输入值,并使用余数作为执行这条if语句的条件。在这种情况下,if语句的条件返回的是整数,而不是bool值。if语句将条件返回的非零值解释为true,将零值解释为false。换句话说,这条if语句的条件表达式
 

  1. (number % 2L) 

等价于

  1. (number % 2L != 0) 

如果余数是1,则条件为true,因此立即执行紧跟if的语句。如果余数是0,则条件是false,因此执行紧跟else关键字的语句。在这里,if表达式完成的工作一目了然。但是,对于复杂的表达式,则最好再添加额外的几个字符与0比较一下,以确保代码容易理解。

在if语句中,条件可以是结果为任意基本数据类型(见第2章)的数值表达式。当条件表达式的结果是数值而不是if语句所要求的bool值时,编译器自动将表达式的结果强制转换为bool类型。强制转换为bool类型的非零值成为true,而零值成为false。

整数除以2得到的余数只能是1或0。输出相应消息之后,执行return语句来结束程序。

与该语句的if部分类似,关键字else后面也不跟分号。缩排还是用于指示不同语句之间的关系。我们可以清楚地看出哪条语句对应于true或非零结果,哪条对应于false或零结果。我们应该在程序中始终缩排语句,以表明相应的逻辑结构。

if-else组合是在两个选项中进行选择的,其一般逻辑如图3-2所示。

图3-2中的箭头指出了语句的执行顺序,这取决于if条件是返回true还是false。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇3.1.2 嵌套的if语句(1) 下一篇3.1.3 嵌套的if-else语句

评论

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

·用 C 语言或者限制使 (2025-12-25 08:50:05)
·C++构造shared_ptr为 (2025-12-25 08:50:01)
·既然引用计数在做 GC (2025-12-25 08:49:59)
·Java 编程和 c 语言 (2025-12-25 08:19:48)
·. net内存管理宝典这 (2025-12-25 08:19:46)