java中有4个逻辑运算符:&与,&& 逻辑与,| 或,|| 逻辑或
这些运算符要求操作数和结果值都是布尔型。

a&&b   a||b
1) 逻辑与&&:只有a和b都为真,结果才为真;其余情况结果均为假。逻辑与 ---- > and并且。
2) 逻辑或||:只有a和b都为假,结果才为假;其余情况结果均为真。逻辑或 ---- > or或者。
    &和&&的返回值规则是:两个操作数都为true才返回true
    |和||的返回值规则是:两个操作数只要有为true才返回true
 
&& 和||会发生短路现象:
对于a&&b逻辑与来说,当第一个表达式a为false时,就不再判断第二个表达式了,直接返回false。
对于a||b来说,当第一个表达式a为true时,就不再判断第二个表达式了,直接返回true。
例子1:
int a = 1;
int b = 2;
int c = 3;
int d = 4;
int e = 5;
boolean i = (a < b) && (c < d);
System.out.println(i);   //返回true
 
例子2:  
int a = 1;
int b = 2;
int c = 3;
int d = 4;
int e = 5;
boolean j = (a < b) && ((e = c) < d);   //先把c赋值给e,此时e等于3,再拿e跟d比较                 
System.out.println(j);    //返回true
System.out.println("e的值===" + e);    //e的值===3
 
 
例子3:   
int a = 1;
int b = 2;
int c = 3;
int d = 4;
int e = 5;
boolean m = (a > b) && ((e = c) < d);   //先把c赋值给e,此时e等于3,再拿e跟d比较                 
System.out.println(m);    //返回false
System.out.println("e的值===" + e);    //e的值===5, 逻辑与&&的第一个表达式为假,则不执行第二个表达式了,直接返回false
 
逻辑或||的实例:
例子1:

int a = 1;
int b = 2;
int c = 3;
int d = 4;
int e = 5;
boolean i = (a < b) || (c < d);
System.out.println(i);  //返回true
System.out.println("e的值===" + e); //e的值===5
例子2:

int a = 1;
int b = 2;
int c = 3;
int d = 4;

int e = 5;

boolean j = (a < b) || ((e = c) < d);                 
System.out.println(j); //返回true
System.out.println("e的值===" + e);  //e的值===5,逻辑||的第一个表达式为true,则直接返回true,不再执行第二个表达式。
 
例子3:在上个例子的基础上,把表达式顺序改变了下  int a = 1;
int b = 2;
int c = 3;
int d = 4;

int e = 5;

boolean k = ((e = c) < d) || (a < b);   //把c赋值给e,再去跟d比较,所以e等于3,而不是5
System.out.println(k); //返回true
System.out.println("e的值===" + e); //e等于3,逻辑||的第一个表达式为true,则直接返回true,不再执行第二个表达式。
例子4:

 int a = 1;
int b = 2;
int c = 3;
int d = 4;

int e = 5;

boolean m = (a > b) || ((e = c) < d); //第一个表达式为false,继续执行第二个表达式                 
System.out.println(m);  //返回true
System.out.println("e的值===" + e); //e等于3,

ava SE ---逻辑运算符的更多相关文章

  1. Java 10 var关键字详解和示例教程

    在本文中,我将通过示例介绍新的Java SE 10特性——“var”类型.你将学习如何在代码中正确使用它,以及在什么情况下不能使用它. 介绍 Java 10引入了一个闪亮的新功能:局部变量类型推断.对 ...

  2. 马凯军201771010116《面向对象与程序设计Java》第十七周学习总结

    一.理论知识部分 Java 的线程调度采用优先级策略:优先级高的先执行,优先级低的后执行:多线程系统会自动为每个线程分配一个优先级,缺省时,继承其父类的优先级: 任务紧急的线程,其优先级较高: 同优先 ...

  3. 201771010134杨其菊《面向对象程序设计(java)》第十七周学习总结

    第十七周学习总结 1. 程序是一段静态的代码,它是应用程序执行的蓝本.进程是程序的一次动态执行,它对应了从代码加载.执行至执行完毕的一个完整过程.操作系统为每个进程分配一段独立的内存空间和系统资源,包 ...

  4. 201771010134杨其菊《面向对象程序设计(java)》第十六周学习总结

    第十六周学习总结 第一部分:理论知识 1. 程序是一段静态的代码,它是应用程序执行的蓝本.进程是程序的一次动态执行,它对应了从代码加载.执行至执行完毕的一个完整过程.操作系统为每个进程分配一段独立的内 ...

  5. 阿里开源线上应用调试利器 Arthas的背后

    Arthas是一个功能非常强大的诊断工具,功能点很多,例如:jvm信息.线程信息.搜索类中的方法.跟踪代码执行.观测方法的入参和返回参数等等. 作为有追求的程序员,你不仅要知道它能做什么,更要思考它是 ...

  6. 201271050130-滕江南-《面向对象程序设计(java)》第十七周学习总结

    201271050130-滕江南-<面向对象程序设计(java)>第十七周学习总结 博文正文开头格式:(2分) 项目 内容 这个作业属于哪个课程 https://www.cnblogs.c ...

  7. java虚拟机规范(se8)——class文件格式(四)

    4.7 属性 属性用于class文件格式中的ClassFile,field_info,method_info和Code_attribute结构. 所有的属性都是下面的格式: attribute_inf ...

  8. 201771010113 李婷华 《面向对象程序设计(Java)》第十七周总结

    一.理论知识部分 Java 的线程调度采用优先级策略:优先级高的先执行,优先级低的后执行:多线程系统会自动为每个线程分配一个优先级,缺省时,继承其父类的优先级: 任务紧急的线程,其优先级较高: 同优先 ...

  9. linux系统中安装JDK 查看安装的ava版本

    一.安装JDK 1.在/usr/目录下创建java目录 [root@localhost ~]# mkdir/usr/java[root@localhost ~]# cd /usr/java 2.下载j ...

随机推荐

  1. UVALive 5886 The Grille (模拟)

    The Grille 题目链接: http://acm.hust.edu.cn/vjudge/problem/26634 Description http://7xjob4.com1.z0.glb.c ...

  2. c#通过操作mongodb gridfs实现文件的数据库存储

    @(编程) 源码 using MongoDB.Driver; using MongoDB.Driver.GridFS; using System.IO; namespace Wisdombud.Mon ...

  3. labview中的文件格式

     

  4. LightOJ 1370 - Bi-shoe and Phi-shoe (欧拉函数思想)

    http://lightoj.com/volume_showproblem.php?problem=1370 Bi-shoe and Phi-shoe Time Limit:2000MS     Me ...

  5. Telnet连接Win7系统被拒绝的原因及解决方法

    有时要与计算机进行远程连接,会用到telnet.win7中telnet默认是没有开启的,所以这时连接会连接失败,其失败提示如下: 正在连接192.168.100.103...无法打开到主机的连接. 在 ...

  6. 找不到类型或命名空间 datarowview

    在绑定数据时经常会用到这个句程序:<%# DataBinder.Eval(Container.DataItem,"xxxx")%>或者<%# DataBinder ...

  7. hdoj 5387(Clock)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5387 比较水的一道题目,也是自己单翘的第一道题目吧,题意就是找到给定时间时钟三个指针之间的夹角, 需要 ...

  8. 创建可执行的JAR包

    创建可执行的JAR文件包,需要使用带cvfm参数的jar命令,命令如下:JAR cvfm test.jar manifest.mf testtest.jar和manifest.mf为两个文件,分别对应 ...

  9. PLSA中的EM算法

    转自:http://www.cnblogs.com/rocketfan/archive/2011/07/03/2096953.html 主要记录下几个文章博客内容 A Note on EM Algor ...

  10. php中curl不支持https的解决办法

    在php程序中使用curl去访问https站点时,报错:Protocol https not supported or disabled in libcurl 该错误信息表示php当时编译时使用的cu ...