java短路逻辑运算符实例用法详解
1、说明
逻辑操作符执行短路求值。所谓短路,就是当一个参与运算的操作数足以推断该表达式的值时,另一个操作数(可能是表达式)就不会执行。
在使用逻辑操作符时,当两个操作数都是true时,结果是true,但当第一个操作是false时,结果必须是false,此时不再判断第二个操作。
2、实例
public static void main(String[] args) { int a = 5;//定义一个变量; boolean b = (a < 4) && (a++ < 10); //使用短路逻辑运算符的结果为false System.out.println("使用短路逻辑运算符的结果为" + b); //a的结果为5 System.out.println("a的结果为" + a); }
该程序使用短路逻辑逻辑运算符(&&),首先判断a<4的结果是false,b的结果是false,因此不再执行第二操作a++<10的判断,因此a的值为5。
知识点扩展:
Java 提供了两个在大多数其他计算机语言中没有的有趣的布尔运算符。这就是逻辑AND和逻辑OR的特殊的短路版本。
在逻辑OR的运算中,如果第一个运算数A为真,则不管第二个运算数B是真是假,其运算结果为真。
同样,在逻辑AND的运算中,如果第一个运算数A为假,则不管第二个运算数是真是假,其运算结果为假。
如果运用||和&&形式,而不是|和&,那么一个运算数就能决定表达式的值,Java的短路版本就不会对第二个运算数求值,只有在需要时才对第二个运算数求值。为完成正确的功能,当右边的运算数取决于左边的运算数是真或是假时,短路版本是很有用的。例如,下面的程序语句说明了短路逻辑运算符的优点,用它来防止被0除的错误:
if (denom != 0 && num / denom > 10)
既然用了短路AND运算符,就不会有当denom为0时产生的意外运行时错误。如果该行代码使用标准AND运算符(&),它将对两个运算数都求值,当出现被0除的情况时,就会产生运行时错误。
既然短路运算符在布尔逻辑运算中有效,那么就在布尔逻辑运算中全用它,而标准的AND和OR运算符(只有一个字符)仅在位运算中使用。然而,这条规则也有例外。例如,考虑下面的语句:
if(c==1 & e++ < 100) d = 100;
到此这篇关于java短路逻辑运算符实例用法详解的文章就介绍到这了,更多相关java短路逻辑运算符是什么内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
Java中比较运算符compareTo()、equals()与==的区别及应用总结
前言 比较运算符用于判断两个数据的大小,例如:大于.等于.不等于.比较的结果是一个布尔值( true 或 false ). Java 中常用的比较运算符如下表所示: 本文主要给大家介绍了关于Java比较运算符compareTo().equals()与==区别及应用的相关内容,下面话不多说了,来一起看看详细的介绍吧 1.== 和 equals的区别: ==主要是两个变量值的比较,返回值为true 或者是false.对于普通变量,如:int a=10; int b= 10; a==b,返回为 tr
-
详解java==运算符和equals()方法的区别
Java语言程序中判断两个变量是否相等有两种方式:一是运用==运算符,二是运用equals方法. 1. ==运算符 对于==运算符来说,如果两个变量是基本类型的,并且是数值类型,则只要它们的值相等,就会返回true:然而如果是两个引用类型的变量,则分为两种情况:1)它们指向同一个对象,结果返回true:2)它们指向不同的对象,即使对象内容相同,结果还是返回false:下面程序示范了使用==运算符比较两个变量是否相等的结果: public class Test { public static vo
-
Java基础之逻辑运算符知识总结
一.前言 逻辑运算符 左右都是布尔类型的操作数,表达式的结果也是布尔类型 true或false 二.逻辑运算符 & 逻辑与 只要有一个操作数是false,那么结果一定是false && 短路与 效率高点,只要左边是false,那么右边就不计算,结果一定是false | 逻辑或 只要有一个操作数是true,那么结果一定是true || 短路或 效率高点,只要左边是true,那么右边就不计算,结果一定是true ! 逻辑非 结果相反 ^ 逻辑异或 左右操作数不一样结果是true,左右操
-
Java运算符的知识点与代码汇总
一:算术运算符 1.算术运算符有哪些 ①基本四则运算符:+ - * / % ②增量赋值运算符:+= -= *= /= %= ③自增/自减运算符++ – 2.如何使用算术运算符 public class TestDemo { public static void main(String[] args) { int a=8; int b=20; System.out.println(a+b);// + System.out.println(b-a);// - System.out.println(a
-
Java中短路运算符与逻辑运算符示例详解
1.逻辑运算符(部分) 符号 名称 && 短路与运算符 || 短路或运算符 & 与运算符 | 或运算符 对于理工科学习者来说,逻辑运算是较为基础的概念,通常会在大一的离散数学课程中有所了解.在Java以及更多C-Like语言中,&和|会分别表示逻辑运算中的与.或,他们的运算结果与我们在数学书中所学的逻辑运算规则并无差异.但是,在实际编程的过程中,我们反而会更多使用&&和||,甚至不少同学都不了解&.|两个运算符.那么,这究竟是为什么呢? 2.短路运算
-
浅谈Java变量赋值运算符及相关实例 原创
Java程序中,需要进行大量的计算,所以要使用到运算符号,下面来给大家说明Java赋值运算符如何运用. 赋值运算符以符号"="表示,它是一个二元运算符(对两个操作数作处理),其功能是将右方操作数所含的值赋给左方操作数.例如: int a = 100; 该表达式是将100赋值给变量 a .左方的操作数必须是一个变量 ,而右边的才做书则可以是任何表达式,包括变量(如 a .number).常量(123.'book').有效表达式(如55*66). 1:使用赋值运算符为变量赋
-
Java基本数据类型和运算符详解
本文实例讲述了Java基本数据类型和运算符.分享给大家供大家参考,具体如下: 基本数据类型 Java 是一种强类型的语言,声明变量时必须指明数据类型.变量(variable)的值占据一定的内存空间.不同类型的变量占据不同的大小. Java中共有8种基本数据类型,包括4 种整型.2 种浮点型.1 种字符型.1 种布尔型,请见下表. Java基本数据类型 数据类型 说明 所占内存 举例 备注 byte 字节型 1 byte 3,127 short 短整型 2 bytes 3,32767 in
-
java运算符实例用法总结
四则运算符 四则运算当中的加号"+"有常见的三种用法: 1.对于数值来,那就是加法. 2.对于字符char类型来说,在计算之前,char会被提升成为int,然后再计算.char类型字符,和int类型数字之间的对照关系比表:ASCII,Unicode 3.对于字符串String(首字母大写,并不是关键字)来,加号代表字符串连操作.任何数据类型和字符串进行连接的时候,结果都会变成字符串 自增运算符:++ 自减运算符:-- 基本含义:让一个变量涨一个数字,或者让一个变量降一个数字1 使用格式
-
详解Java中运算符及用法
在前面的内容已经学会了如何定义变量和初始化变量.定义变量的目的就是为了操作数据.Java 语言中给我们提供了专门用来操作这些数据的代码符号,统称为"运算符". 按照操作符的用法,我们可以分为以下几类: 算术运算符 赋值运算符 自增和自减运算符 逻辑运算符 关系运算符 位运算符 不用担心,它们就是些符号而已,帮我们处理操作数据的.下面用代码实例,一一来说明这些运算符的用法. 1. 算术运算符 算术运算符,就是针对数值变量的加.减.乘.除.取余的算术操作: 加 :+ 减:- 乘:* 除:/
-
Java基础之详细总结五种常用运算符
一.算术运算符 算术运算符的符号通常为:加(+).减(-).乘(*).除(/).取余(%).自增(++).自减(--). 使用int类型的变量和int类型的变量做除法,得到的结果还是int类型: 使用double类型的常量和 int类型的常量做除法,会得到double类型的结果:在使用强制类型double转换可以得到double类型 System.out.println(7 / 2);//3.0 System.out.println((double)(7 / 2)); // 3.0 System
-
Java运算符的常见问题与用法小结
本文实例讲述了Java运算符的常见问题与用法.分享给大家供大家参考,具体如下: 算术运算符: 算术运算符的注意问题 1. 如果对负数取模,可以把模数负号忽略不记,如:5%-2=1.但被模数是负数就另当别论. -5%3=-2:-5%-3=-2:符号跟被模数(左边). 2. 对于除号"/",它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分. 例如:int x=3510;x=x/1000*1000; x的结果是? 3000 而3560.0/1000*1000=35
-
Java移位运算符详解实例(小结)
移位运算符它主要包括:左移位运算符(<<).右移位运算符(>>>).带符号的右移位运算符(>>),移位运算符操作的对象就是二进制的位,可以单独用移位运算符来处理int型整数. 运算符 含义 << 左移运算符,将运算符左边的对象向左移动运算符右边指定的位数(在低位补0) >> "有符号"右移运算 符,将运算符左边的对象向右移动运算符右边指定的位数.使用符号扩展机制,也就是说,如果值为正,则在高位补0,如果值为负,则在高位补
-
Java 无符号右移与右移运算符的使用介绍
Java 无符号右移介绍 最近学习Java,看到>>>运算符不太了解,也百度查了查,解释得不是很清晰.那么下面讲解我对>>>运算符的认识: >>>运算符:无符号右移运算符 在学习>>>无符号右移运算符前,我们先了解右移运算符>> 下表列出了位运算符的基本运算,假设整数变量A的值为60和变量B的值为13: 操作符 描述 例子 & 如果相对应位都是1,则结果为1,否则为0 (A&B),得到12,即0000 11
-
Java三种移位运算符原理解析
这篇文章主要介绍了Java三种移位运算符原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 java移位运算符不外乎就这三种:<<(左移).>>(带符号右移)和>>>(无符号右移). 1. 左移运算符 左移运算符<<使指定值的所有位都左移规定的次数. 1)它的通用格式如下所示: value << num num 指定要移位值value 移动的位数. 左移的规则只记住一点:丢弃最高位(符
-
Java 逻辑运算符中&&与&,||与|的区别
在Java的逻辑运算符中,有这么四类:&&(短路与),&,|,||(短路或). &&和&都是表示与,区别是&&只要第一个条件不满足,后面条件就不再判断.而&要对所有的条件都进行判断. 看下面的程序: public static void main(String[] args) { // TODO Auto-generated method stub if((23!=23)&&(100/0==0)){ System.ou
-
Java语言一元运算符实例解析
一元运算符,也叫单项算符,一目运算符,一元算符 ,英文名字:UnaryOperator. 描述:接受一个参数为类型T,返回值类型也为T. 源码: public interface UnaryOperator<T> extends Function<T, T> { /** * Returns a unary operator that always returns its input argument. * * @param <T> the type of the inp
-
java数据类型和运算符的深入讲解
一.整型变量 1.基本格式 int 变量名 = 初始值; 代码示例: public class CSDN { public static void main(String[] args) { int a=10; System.out.println(a); } } 2.java中的int是4个字节. 3.java中int的最大值和最小值 如果数大于0,则最高位为0,如果数小于0,则最高位为1.在判断数值范围时,不用考虑负数采用补码形式存储,因为补码和原码是一一对应的.当最高位是1,即为负数,后面
-
Java利用三目运算符比较三个数字的大小
易于理解版 package com.zhebie.ternary; public class ternary { public static void main(String[] args) { int a = 5, b = 8 , c = 9; a=a>b?a:b; //a与b相比较,将较大值赋值给a a=a>c?a:c; //已经获得较大值得a再与c相比较,将较大值再次赋值给a System.out.println(a); //输出a的值为9 } } 嵌套三目运算版 public clas
随机推荐
- Access出现"所有记录中均未找到搜索关键字"的错误解决
- 使用mydumper多线程备份MySQL数据库
- mysql判断字段是否存在的方法
- 自定义vue全局组件use使用、vuex的使用详解
- 上周方法病毒来源竟然为ad.pchome.net原来被挂马
- Jersey框架的统一异常处理机制分析
- js 验证身份证信息有效性
- js表单验证实例讲解
- C#数据结构之循环链表的实例代码
- Bootstrap table学习笔记(2) 前后端分页模糊查询
- Ajax 通过城市名获取数据(全国天气预报API)
- jQuery验证插件 Validate详解
- JSP上传图片产生 java.io.IOException: Stream closed异常解决方法
- Windows Powershell 变量的类型和强类型
- jQuery实现的淡入淡出二级菜单效果代码
- jQuery uploadify在谷歌和火狐浏览器上传失败的解决方案
- Android中几种图片特效的处理的实现方法
- 路由信息协议RIP
- Java内存泄漏问题处理方法经验总结
- Node.js一行代码实现静态文件服务器的方法步骤