第二章 java基础(条件运算符)

—— 本文参照 Learn Java for Android Development (第三版)

最近好多在群里说android要退了,将要跟Chorme合并了,android将何去何从呢。。。。但是作为一个程序员我只能简单地做好我能做的事情,我没法去想那么多还没有发生的事情。
条件运算符
条件运算符主要有条件与(&&),条件或(||),条件运算符(?:)。前面两个条件运算符首先会判断运算符左边的操作数,然后再根据左边的判断结果来选择是否再对右边的进行判断。第三个操作符的结果由第三个布尔操作数决定。
条件与运算符的左边操作数如果是true的话会判断右边的操作数,否者的话就不对右边的操作数进行判断。例如:age > 64 && stillWorking,首先我们会判断age > 64,如果这个子表达式为真的话,就会对stillWorking的真假进行判断,stillWorking值就代表了真个表达式的真假。如果age > 64 如果为假的话,stillWorking 就不进行判断了。
条件或运算符的左边操作数为false的话我们才会去判断右边的操作数,否者的话就不对右边的操作数进行判断,例如:value < 20 || value > 40,首先判断子表达式value < 20,如果子表达式为flase的话就对value > 40进行判断,value > 40也决定了整个表达式的值。如果value < 20本来就为真的话那么value > 40就不进行判断了。
条件与和条件或其实在某种意义上提高了运算效率,因为在很多运算表达式里面我们只需要对表达式的前半部分做出判断就可以了,例如,如果条件与的左边操作数已经是false,那么无论右边的操作数是什么都影响不了整个表达式的结果为false的事实了。
在实际的开发中如果没有注意到上面的内容的话可能会犯错。比如这样子的一个表达式:age > 64 &&++numEmployees > 5,这个表达式的本意是想条件与运算结束以后numEmployees 能增加1,但是在实际的运算过程中只有那些age>64的情况numEmployees才会加1,因为如果age小于等于64的话后面的表达式就不会做判断了。
条件运算符还有一个很大的用处,那就是通过一个表达式然后返回两个操作数中的一个的时候,下面的例子是通过判断一个布尔变量然后用1或者0作为这个变量的返回值:
boolean b = true;
int i = b ? 1 : 0; //结果是1被赋值给了i
下面用一段代码来实际体验一些条件操作符:
public class Test
{
public static void main(String[] args)
{
int age = 65;
boolean stillWorking = true;
System.out.println(age > 64 && stillWorking);
age--;
System.out.println(age > 64 && stillWorking);
int value = 30;
System.out.println(value < 20 || value > 40);
value = 10;
System.out.println(value < 20 || value > 40);
int numEmployees = 6;
age = 65;
System.out.println(age > 64 && ++numEmployees > 5);
System.out.println("numEmployees = " + numEmployees);
age = 63;
System.out.println(age > 64 && ++numEmployees > 5);
System.out.println("numEmployees = " + numEmployees);
boolean b = true;
int i = b ? 1 : 0; // 1 assigns to i
System.out.println("i = " + i);
b = false;
i = b ? 1 : 0; // 0 assigns to i
System.out.println("i = " + i);
}
}
编译javac Test.java
执行 java Test
结果如下:
true
false
false
true
true
numEmployees = 7
false
numEmployees = 7
i = 1
i = 0

Page 61

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,740评论 18 399
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    叶总韩阅读 5,152评论 0 41
  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 1,894评论 0 2
  • 第一章 初识javaJAVA 第一讲:什么是程序?:为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的...
    人子日月几点阅读 544评论 0 1
  • 我拿掉了我的脸,安在你的脸上。我没有脸,白茫茫一片,你变成了我的模样。
    great阅读 191评论 0 1