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. Message Forwarding

    [Preprocess] 在使用forwarding机制前,会先经历2个步骤,只有当这2个步骤均失败的情况下,才会激活forwarding. 1.+(BOOL)resolveInstanceMetho ...

  2. keil中如何得知所编译程序所占空间大小?

    keil编译后出现Program Size: data=21.0 xdata=0 code=2231. 这表明 data= 21.0  数据储存器内部RAM占用21字节, xdata=0     数据 ...

  3. .NET文件上传的大小限制配置

    <system.web>  <!--maxRequestLength单位是Kb-->  <httpRuntime maxRequestLength="20971 ...

  4. 将nginx配置为服务,php-fpm配置说明

    编写shell脚本 vi /etc/init.d/nginx #!/bin/bash # # Startup script for the PHP-FPM server. # # chkconfig: ...

  5. Spring REST实践之REST基本介绍

    REST是什么 REST(REpresentational State Transfer)是一个设计分布式web应用的框架风格,有六个基本原则: Client-Server:应用的参独立与者可分为Cl ...

  6. 多线程下载网络歌曲&播放歌曲&并用seekbar调节进度&显示歌曲两边的时间

    这里先给一个处理时间格式的代码: /** * 时间的处理 *  * @param time * @return */ public static String getTimeFromInt(int t ...

  7. WCF WEB API配置

    Web.config配置 <system.serviceModel> <services> <service name="WCFServiceWebRole2. ...

  8. 如何加入自定义WebControl

    http://www.screencast.com/users/Dennis.Garavsky/folders/Default/media/c75b4ec6-1641-4f82-936e-39360d ...

  9. 学会自己写jQuery插件(一)---基础

    第一步:定义插件 $(function() { $.fn.插件名称 = function(options) { var defaults = { Event : "click", ...

  10. addClass 函数

    javascript: function addClass(id,new_class){ var i,n=0; new_class=new_class.split(","); fo ...