技术控

    今日:67| 主题:49369
收藏本版 (1)
最新软件应用技术尽在掌握

[其他] 第 8 单元:条件运算符和控制语句

[复制链接]
時光已泛黃 发表于 2016-10-17 20:24:22
52 1

立即注册CoLaBug.com会员,免费获得投稿人的专业资料,享用更多功能,玩转个人品牌!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
开始之前

  本单元是 “Java 编程入门” 学习路径的一部分。尽管各单元中讨论的概念具有独立性,但实践组件是在您学习各单元的过程中逐步建立起来的,推荐您在继续学习之前复习    前提条件、设置和单元细节。  
  单元目标

  
       
  • 知道何时和如何使用关系运算符、条件运算符和控制语句   
  • 了解变量范围的概念和它的基本规则   
  • 熟悉三元运算符  
  关系和条件运算符

  Java 语言提供了运算符和控制语句,可在代码中使用它们来制定决策。代码中的决策通常从一个    布尔表达式(一个计算为    true或    false的表达式)开始。这些表达式使用    关系运算符(用于将一个操作数与另一个操作数比较)和    条件运算符。  
  表 1 列出了 Java 语言中的关系和条件运算符。
  表 1. 关系和条件运算符

                    运算符        用法        返回 true 的条件……                                      >                          a > b                          a大于          b                                      >=                          a >= b                          a大于或等于          b                                      <                          a < b                          a小于          b                                      <=                          a <= b                          a小于或等于          b                                      ==                          a == b                          a等于          b                                      !=                          a != b                          a不等于          b                                      &&                          a && b                如果          a和          b均为 true,则有条件地计算          b(如果          a为 false,则不计算          b)                                      ||                          a || b                          a或          b为 true,则有条件地计算          b(如果          a为 true,则不计算          b)                                      !                          !a                          a为 false                                      &                          a & b                          a和          b均为 true,则始终计算          b                                      |                          a | b                如果          a或          b为 true,则始终计算          b                                      ^                          a ^ b                          a和          b不同                      if 语句

  有了大量运算符后,是时候使用它们了。此代码展示了在将一种逻辑添加到    Person对象的    getHeight()访问方法时发生的情况:  
  1. public int getHeight() {
  2.   int ret = height;
  3.   // If locale of the computer this code is running on is U.S.,
  4.   if (Locale.getDefault().equals(Locale.US))
  5.     ret /= 2.54;// convert from cm to inches
  6.   return ret;
  7. }
复制代码
如果当前的地区是在美国(未使用公制),可能将    height(以厘米为单位)的内部值转换为英寸更有意义。这个(人为设计的)示例演示了    if语句的使用,它计算圆括号内的一个布尔表达式。如果该表达式计算为    true,那么程序会执行下一个语句。  
  在本例中,仅在运行代码的计算机的    Locale是    Locale.US时,才需要执行一条语句。如果需要执行多条语句,可以使用花括号形成一个    复合语句。复合语句将多条语句分组到一个中,而且复合语句也可以包含其他复合语句。  
  变量范围

  Java 应用程序中的每个变量都拥有    范围或局部化的命名空间,在代码中,可以在该范围内通过名称访问它。在该空间外,该变量就位于    范围之外,如果尝试访问它,将得到编译器错误。Java 语言中的范围级别由声明变量的位置来定义,如清单 1 所示。  
  清单 1. 变量范围

  1. public class SomeClass {
  2.   private String someClassVariable;
  3.   public void someMethod(String someParameter) {
  4.     String someLocalVariable = "Hello";
  5.     if (true) {
  6.       String someOtherLocalVariable = "Howdy";
  7.     }
  8.     someClassVariable = someParameter; // legal
  9.     someLocalVariable = someClassVariable; // also legal
  10.     someOtherLocalVariable = someLocalVariable;// Variable out of scope!
  11.   }
  12.   public void someOtherMethod() {
  13.     someLocalVariable = "Hello there";// That variable is out of scope!
  14.   }
  15. }
复制代码
在    SomeClass中,    someClassVariable可被所有实例(也即非静态)方法访问。    someParameter在    someMethod内可见,但在该方法外不可见,    someLocalVariable也是如此。在    if代码块内,声明了    someOtherLocalVariable,在    if代码块外,它就超出了范围。出于这个原因,我们可以说 Java 拥有    代码块范围,因为代码块(由    {和    }限定)定义了范围边界。  
  范围有许多规则,给出了最常用的规则。请花几分钟熟悉一下它们。  
  else 语句

  有时在程序的控制流中,您可能希望仅在某个特定表达式的计算结果不为    true时执行操作。此时使用    else就很方便:  
  1. public int getHeight() {
  2.   int ret;
  3.   if (gender.equals("MALE"))
  4.     ret = height + 2;
  5.   else {
  6.     ret = height;
  7.     Logger.getLogger("Person").info("Being honest about height...");
  8.   }
  9.   return ret;
  10. }
复制代码
     else语句的原理与    if相同,因为程序仅执行它遇到的下一条语句。在本例中,两条语句分组到一条复合语句中(请注意花括号),然后供程序执行。  
  也可以使用    else执行一次额外的    if检查:  
  1. if (conditional) {
  2.   // Block 1
  3. } else if (conditional2) {
  4.   // Block 2
  5. } else if (conditional3) {
  6.   // Block 3
  7. } else {
  8.   // Block 4
  9. } // End
复制代码
如果    conditional的计算结果为    true,则执行    Block 1,而且程序会跳到最后一个花括号之后的语句(由    // End表示)。如果    conditional的计算结果    为    true,则计算    conditional2。如果    conditional2为 true,则计算    Block 2,而且程序会跳到最后一个花括号之后的语句。如果    conditional2不为 true,则程序前进到    conditional3,等等。仅在所有 3 个条件都失败时,才执行    Block 4。  
  三元运算符

  Java 语言提供了一个方便的运算符来执行简单的    if/    else语句检查。这个运算符的语法是:  
  1. (conditional) ? statementIfTrue : statementIfFalse;
复制代码
如果    conditional计算为    true,则执行    statementIfTrue;否则执行    statementIfFalse。每条语句均不允许采用复合语句形式。  
  如果 conditional 语句的计算结果为    true,则需要执行一条语句,如果不为 true,则执行另一条语句,在知道这种情况时,三元运算符很方便。三元运算符常常用于初始化一个变量(比如一个返回值),类似这样:  
  1. public int getHeight() {
  2.   return (gender.equals("MALE")) ? (height + 2) : height;
  3. }
复制代码
问号后面的圆括号不是必需的,但它们会让代码更可容易理解。
  进一步探索
友荐云推荐




上一篇:JavaScript projects regroup under a new foundation
下一篇:第 7 单元:字符串和运算符
酷辣虫提示酷辣虫禁止发表任何与中华人民共和国法律有抵触的内容!所有内容由用户发布,并不代表酷辣虫的观点,酷辣虫无法对用户发布内容真实性提供任何的保证,请自行验证并承担风险与后果。如您有版权、违规等问题,请通过"联系我们"或"违规举报"告知我们处理。

北鼻是我闺蜜 发表于 2016-11-13 19:24:25
态度决定一切,不错!
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

我要投稿

推荐阅读

扫码访问 @iTTTTT瑞翔 的微博
回页顶回复上一篇下一篇回列表手机版
手机版/CoLaBug.com ( 粤ICP备05003221号 | 文网文[2010]257号 )|网站地图 酷辣虫

© 2001-2016 Comsenz Inc. Design: Dean. DiscuzFans.

返回顶部 返回列表