`
supportopensource
  • 浏览: 515071 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

逻辑运算符中的“短路”与“非短路”

 
阅读更多
短路:在逻辑表达式中,如果能通过逻辑运算符左边表达式的值就能推算出整个表达式的值,那么将不再继续执行逻辑运算符右边的表达式。(&&,||)
非短路:始终执行逻辑表达式两边的表达式。(&,|)
例如:
public class Test2{
	public static void main(String args[]){
		int a = 1;
		int b = 2;
		boolean result = ((a = 9+3)<10)&&((b = 8-3)>4);
		//boolean result = ((a = 9+3)<10)&((b = 8-3)>4);
		System.out.println("result="+result);
		System.out.println("a="+a);
		System.out.println("b="+b);
	}
}

运行结果如下:
result=false
a=12
b=2
然后注释掉boolean result = ((a = 9+3)<10)&&((b = 8-3)>4);,运行boolean result = ((a = 9+3)<10)&((b = 8-3)>4);的结果如下:
result=false
a=12
b=5
在实际应用时,更多的应用“短路”逻辑运算符,因为使用“短路”运算符算在一些情况下只需计算其中一个表达式的值就可得到整个表达式的结果,缩短了执行时间,提高了执行速度。例如“True||(45328/45+3455.33)>(99*23+98.12)”,已知道左边的值为True,则整个表达式的值为True,因此不需要执行右边的表达式。
使用“短路”逻辑运算符有助于提高程序代码的安全性,例如判断用户是否输入了数值,可通过如下编码:
String name = null;
//判断name不等于null并且不等于空,当name等于null时,不会执行name.equals("")方法
if(name!=null&&!name.equals(""))
	System.out.println("用户名:"+name);
else
	System.out.println("请输入用户名!");

运行结果如下:
请输入用户名!
如果使用“非短路”逻辑运算符与运算符“&”进行判断:
String name = null;
//判断name不等于null并且不等于空,当name等于null时,还会执行name.equals("")方法
if(name!=null&!name.equals(""))
	System.out.println("用户名:"+name);
else
	System.out.println("请输入用户名!");

则会抛出java.lang.NullPointerException空指针异常。因为name没有引用任何对象,所以name.equals("")将抛出异常错误。
分享到:
评论

相关推荐

    34.java短路逻辑运算符.zip

    34.java短路逻辑运算符.zip34.java短路逻辑运算符.zip34.java短路逻辑运算符.zip34.java短路逻辑运算符.zip34.java短路逻辑运算符.zip34.java短路逻辑运算符.zip34.java短路逻辑运算符.zip34.java短路逻辑运算符.zip...

    计算机后端-PHP视频教程. php与mysql加强- 05. php加强53-进逻辑运算符的短路特性.wmv

    计算机后端-PHP视频教程. php与mysql加强- 05. php加强53-进逻辑运算符的短路特性.wmv

    Java中短路与和与,短路或和或逻辑运算符区别.pdf

    Java中短路与和与,短路或和或逻辑运算符区别.pdf 学习资料 复习资料 教学资源

    JS逻辑运算符短路操作实例分析

    本文实例分析了JS逻辑运算符短路操作。分享给大家供大家参考,具体如下: js逻辑运算符有三个:逻辑非!、逻辑与&&、逻辑或||。 所谓短路操作就是,当&&的第一个操作数的值是false时,直接返回第一个操作数的值,不再...

    Java程序设计基础:逻辑运算符.pptx

    短路与 a、b全为true时,计算结果为true,否则为false。 2&gt;1&&3 true || a||b 短路或 a、b全为false时,计算结果为 false,否则为true。 2||3&gt;4 false & a&b 逻辑与 a、b全为true时,计算结果为true,否则为false。 ...

    java逻辑运算符的作用

    逻辑运算符 &&、 ||、 ! 注意:逻辑计算支持短路操作 表达多个条件之间的关系。例如年龄大于等于18并且年龄小于65 &&:与运算,含义是两个条件必须同时成立,可以翻译为并且 ||:或运算,含义是两个条件中成立一个...

    布尔逻辑运算符

    表4-5 布尔逻辑运算符及其意义 运算符 含义 & 逻辑与 逻辑或 ^ 异或 短路或 && 短路与 ! 逻辑反 &= 逻辑与赋值(赋值的简写形式) = 逻辑或赋值(赋值的简写形式) ^= 异或赋值(赋值的简写形式) == 相等 != 不...

    Java逻辑运算符

    Java中的逻辑运算符包括逻辑与&,逻辑或|,逻辑非!逻辑异或^,除此之外还有几个比较相似的&&短路与,||短路或。  那么这几个逻辑运算符到底有什么意思呢?下面我们来看看  首先看逻辑与&的用法,只有两个都为真...

    java代码-逻辑运算符

    java代码-逻辑运算符

    asp.net运算符之逻辑运算符以及其他运算符介绍与实例

    运算符 运算 例子 结果 & AND(与) false&true false | OR(或) false|true true ^ XOR(异或) false^true true ! NOT(非) !false true && AND(短路) false&&true false || OR(短路) false||true true 下面对一些比较...

    C语言程序设计-其他运算符与表达式.pptx

    逻辑表达式中可以包含多个逻辑运算符;3种逻辑运算符的优先级从高到低依次为: !&&||;运算符“&&”被称为短路“与”;运算符“||”被称为短路“或”。 6-4 逻辑运算符与逻辑表达式 运算符 运算 范例 结果 && 与 a&&...

    matlab函数参考.pdf

    逻辑运算符:短路 && || 具有短路功能的逻辑运算 语法 expr1 && expr2expr1 || expr2 说明 expr1 && expr2 表示使用短路行为 (第 1-4 页)的逻辑 AND 运算。即,如果 expr1 为逻辑值 0 (false),将不计算 expr2 的...

    面试题JavaSE语法.docx

    逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是 true 整个表达式的值才是 true。 &&之所以称为短路运算是因为,如果&&左边的表达式的值是 false,右边的表达式会被直接短路掉,不会...

    Java基础知识点.html

    跳转控制语句 三元运算符 逻辑运算符 短路逻辑运算符 数组 方法简述 switch语句 if语句 关系运算符 自增自减运算符 赋值运算符 算术运算符 类型转换 Java简述 标识符 变量 数据类型 常量 关键字

    Python-内置数据类型.zip

    020.布尔值_比较运算符_逻辑运算符_短路问题 021.同一运算符_整数缓存问题 022.字符串_unicode字符集_三种创建字符串方式_len() 023.字符串_转义字符_字符串拼接_字符串复制_input()获得键盘输入 024.字符串_str()_...

    Java中的短路效应

    对于逻辑运算符&& 和 ||,学过discrete Math的同学都知道,一个是与,一个是或。在Java中它们存在短路效应。  对于a && b,只有当a和b同时为true时,整个表达式才为true,在java中,首先运算表达式a,如果a为true...

    Screenshot_2019-11-15-13-34-57-96_860bc48c3aad114ac1ee206f23d5a6f5.png

    第二课​ 逻辑运算符 1.&&逻辑与 ||​逻辑或 !逻辑非 2.不能连着写关系表达式 3.短路运算: 在逻辑表达式的计算过程中,一旦能够确定整个表达式的值,就会立刻停止计算。​ 第三课 if语句 1.if(表达式)​ ...

    java-a-course-for-beginners:初学者Java编程教程

    Java运算符-Java赋值运算符,关系和逻辑运算符,短路运算符 Java条件和If语句 方法-参数,参数和返回值 Java平台概述-Java,Javac,字节码,JVM和平台独立性-JDK,JRE和JVM 面向对象编程-类,对象,状态和行为 OOPS...

    Perl 实例精解(第三版).pdf

    5.3.4 逻辑运算符(短路运算符) 5.3.5 逻辑字运算符 5.3.6 算术运算符 5.3.7 自动递增和自动递减运算符 5.3.8 位逻辑运算符 5.3.9 条件运算符 5.3.10 范围运算符 5.3.11 特殊字符串运算符和...

Global site tag (gtag.js) - Google Analytics