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. C# winform只有一个进程

    在做winform程序的时候,有时候需要客户只能起一个进程,不能起多个进程,用如下代码可以实现. internal static class Program { private static Mute ...

  2. hdu 5400 Arithmetic Sequence

    http://acm.hdu.edu.cn/showproblem.php?pid=5400 Arithmetic Sequence Time Limit: 4000/2000 MS (Java/Ot ...

  3. 摄影初学者挑选相机的常见问题 FAQ

    数码相机一次次降价,越来越多的人加入摄影的行列,照相器材还是一个比较专业的领域,并非简单的参数比一下高低就可以知道好坏,很多朋友往往了解了好久还没弄清孰优孰劣,在购机前踌躇半天拿不定主意,我收集了被问 ...

  4. 行为识别(action recognition)相关资料

    转自:http://blog.csdn.net/kezunhai/article/details/50176209 ================华丽分割线=================这部分来 ...

  5. Eclipse 和 NetBeans 快捷键即其他常用功能比较

    按: 自己用 Eclipse, 常用的也就这些功能, 在用 NetBeans 时, 有些不顺手, 因此列表如下. Eclipse和NetBeans常用快捷键对比:  功能  Eclipse     N ...

  6. Objective-C 学习记录--toches、Motion/Size/Rect/Point/CGFloat/protocol

    - (void)touchesBegan touchesEnd touchesCancelled touchesMoved //代表的是手指在屏幕上的动作,开始 结束 取消 移动 //还有就是代表摇动 ...

  7. ngTbale假分页实现排序、搜索、导出CSV等功能

    一. ngTable功能简化 使用ngTable经常有分页,排序,过滤等功能,实现诸多功能较为麻烦.为了方便开发过程,可以抽取一些table共同点写一个公有方法. 注意: 1. 由于很多特别的需求,可 ...

  8. 如何在微博侧栏中加入自己的微博[js]

    <div class="box"> <ul> <li> <object classid="clsid:D27CDB6E-AE6D ...

  9. OSGI(面向Java的动态模型系统)

    基本简介编辑 OSGI服务平台提供在多种网络设备上无需重启的动态改变构造的功能.为了最小化耦合度和促使这些耦合度可管理,OSGi技术提供一种面向服务的架构,它能使这些组件动态地发现对方.OSGi联 O ...

  10. dmalloc 原文 翻译整理

    http://blog.csdn.net/cardinal_508/article/details/5553387 L13 从快速入门开始(Quickstart) 这个库是一个文件中所有简化用法中最常 ...