`
yxwang0615
  • 浏览: 560815 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

java 逻辑运算符 短路(条件操作)

    博客分类:
  • java
阅读更多

[thinking java]:

一、java 与或非 操作

与(&)、非(~)、或(|)、异或(^)

1.与运算符
与运算符用符号“&”表示,其使用规律如下:
两个操作数中位都为1,结果才为1,否则结果为0,例如下面的程序段。
public class data13
{
public static void main(String[] args)
{
int a=129;
int b=128;
System.out.println("a 和b 与的结果是:"+(a&b));
}
}
运行结果
a 和b 与的结果是:128
下面分析这个程序:
“a”的值是129,转换成二进制就是10000001,而“b”的值是128,转换成二进制就是10000000。根据与运算符的运算规律,只有两个位都是1,结果才是1,可以知道结果就是10000000,即128。


2.或运算符
或运算符用符号“|”表示,其运算规律如下:
两个位只要有一个为1,那么结果就是1,否则就为0,下面看一个简单的例子。
public class data14
{
public static void main(String[] args)
{
int a=129;
int b=128;
System.out.println("a 和b 或的结果是:"+(a|b));
}
}
运行结果
a 和b 或的结果是:129
下面分析这个程序段:
a 的值是129,转换成二进制就是10000001,而b 的值是128,转换成二进制就是10000000,根据或运算符的运算规律,两个位满足其中有一个或两个是1,结果就为1,可以知道结果就是10000001,即129。


3.非运算符
非运算符用符号“~”表示,其运算规律如下:

如果位为0,结果是1,如果位为1,结果是0,下面看一个简单例子。
public class data15
{
public static void main(String[] args)
{
int a=2;
System.out.println("a 非的结果是:"+(~a));
}
}


4.异或运算符
异或运算符是用符号“^”表示的,其运算规律是:
两个操作数的位中,相同则结果为0,不同则结果为1。下面看一个简单的例子。
public class data16
{
public static void main(String[] args)
{
int a=15;
int b=2;
System.out.println("a 与 b 异或的结果是:"+(a^b));
}
}
运行结果
a 与 b 异或的结果是:13
分析上面的程序段:a 的值是15,转换成二进制为1111,而b 的值是2,转换成二进制为0010,根据异或的运算规律,可以得出其结果为1101 即13。

 

二、短路 条件操作

当使用逻辑操作符时,我们会遇到一种“短路”现象。即一旦能够明确无误地确定整个表达式的值,就不会再计算表达式剩余的部分了。因此,整个逻辑表达式靠后的部分有可能不会被运算。

System.out.println(false||true);//输出true,||不存在短路现象,表达式中有任意一部分为true就返回true,所以||逻辑操作符必须要将整个表达式运算完毕才能得出结果。

System.out.println(false && true);//输出false。表达式中有任意一部分为false,整个表达式就返回false。不必将整个表达式运算完毕。

static boolean test1(int val){
		System.out.println("test1(" + val + ")");
		System.out.println("result:" + (val<1));
		return val<1;
	}
	static boolean test2(int val){
		System.out.println("test2(" + val + ")");
		System.out.println("result:" + (val<2));
		return val<2;
	}
	static boolean test3(int val){
		System.out.println("test3(" + val + ")");
		System.out.println("result:" + (val<3));
		return val<3;
	}
	public static void main(String[] args) {
		boolean b = test1(0) && test2(2) && test3(2);
		System.out.println("expression is " + b);
	} /**OutPut
		* test1(0)
		* result:true
		* test2(2)
		* result:false
		* expression is false
		*/

 第一个测试生成结果为true,所以表达式会继续下去。然而第二个测试产生了一个false结果。由于这意味着整个表达式肯定为false,所以没有必要继续计算剩余的表达式,那样做只是浪费。“短路”一词的由来正源于此。合理的短路设计会使程序性能获得潜在的提升。

 

分享到:
评论

相关推荐

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

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

    java 逻辑运算符的资源

    在Java编程语言中,逻辑运算符是用于处理布尔值(true或false)的关键工具,它们在构建复杂的条件语句和控制程序流程时起着至关重要的作用。本资源着重讲解Java中的逻辑运算符及其用法。 1. **逻辑与(&&)**:此...

    Java 短路运算符和非短路运算符详解

    Java 语言中有两种类型的逻辑运算符:短路运算符和非短路运算符。短路运算符包括“&&”和“||”,它们在逻辑表达式中使用,具有短路特性,即如果第一个表达式的结果已经确定了整个表达式的结果,那么就不再执行后续...

    12.java逻辑运算符.zip

    Java语言中的逻辑运算符是程序设计中不可或缺的一部分,它们用于处理布尔值(true或false)并帮助构造复杂的条件语句。在本资料中,我们将深入探讨Java中的逻辑运算符,包括逻辑与(&&), 逻辑或(||), 逻辑非(!)以及...

    java逻辑运算符的作用

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

    java运算符流程控制数组基础题目

    短路逻辑运算符(&&和||)的特点是如果第一个操作数能确定整个表达式的值,就不会计算第二个操作数。 **赋值运算符**:如`=`用于将右边的值赋给左边的变量。还有复合赋值运算符,如`+=`、`-=`、`*=`、`/=`和`%=`,...

    第02章 Java编程基础 07 逻辑运算符与示例

    在Java编程语言中,逻辑运算符是用于处理布尔值(true或false)的关键工具,它们在构建复杂的条件语句和控制程序流程时起着至关重要的作用。本章将深入探讨Java中的逻辑运算符及其用法。 一、逻辑运算符类型 1. ...

    逻辑运算符

    逻辑运算符 逻辑运算符是 Java 编程...在实际编程中,短路逻辑运算符可以提高程序的效率,因为它们可以避免执行不必要的操作数。然而,在某些情况下,非短路逻辑运算符更加适合,因为它们可以确保所有操作数都被执行。

    java代码-逻辑运算符

    在Java编程语言中,逻辑运算符是用于处理布尔值(`true`或`false`)的关键工具,它们在条件语句和控制流程中扮演着重要角色。这些运算符帮助我们组合和评估多个条件,以便更好地控制程序的执行路径。本节将深入探讨...

    大数据必学Java基础(十七):关系运算符和逻辑运算符

    在Java中,逻辑运算符的使用非常重要,如判断多个条件是否同时满足、判断某个条件是否满足等。在编程中,逻辑运算符经常与关系运算符结合使用,以实现更复杂的逻辑判断。 在Java中,逻辑运算符的优先级高于关系...

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

    在Java编程语言中,逻辑运算符是用于组合布尔表达式的关键工具,它们帮助开发者基于一组条件来决定程序的流程。本文将深入探讨两种类型的“与”运算符(&&和&)以及两种类型的“或”运算符(||和|),并阐述它们之间...

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

    能使用逻辑运算符组合条件 已知一个三角形的三条边长已经存放在变量a,b,c中,如何确定这个三角形能成立呢?条件如何写? 引入 a c b a+b&gt;c , a+c&gt;b , b+c&gt;a a+b&gt;c && a+c&gt;b && b+c&gt;a 检验一个数x是否被2或3整除,...

    8.3 逻辑运算符.7z

    9. **位运算符**:在一些低级别的编程或特定场景下,逻辑运算符还与位操作结合使用,如位与(&)、位或(|)和位非(~)。这些运算符在处理二进制数据时非常有用。 10. **在函数参数中的应用**:逻辑运算符可以作为...

    Java逻辑运算符

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

    Java的运算符[参考].pdf

    根据功能不同,Java的运算符主要分为四类:算术运算符、关系运算符、逻辑运算符和位运算符。 1. 算术运算符 算术运算符包括一元运算符和二元运算符。一元运算符如正号 (+)、负号 (-)、自增 (++) 和自减 (--),它们...

    92.090.JAVA基础教程_Java基本语法-复习2:比较与逻辑运算符(92).rar

    此外,Java还提供了短路逻辑运算符,如逻辑与(&)和逻辑或(|),它们的区别在于当第一个表达式足以确定整个结果时,短路运算符不会评估第二个表达式。这在处理可能抛出异常或有副作用的操作时特别有用。 学习和...

    Java运算符介绍.pptx.pptx

    在Java中,运算符主要分为四大类:算术运算符、关系运算符、逻辑运算符和位运算符。 1. **算术运算符** - 加法运算符 (+):将两个数值相加,适用于整数、浮点数。 - 减法运算符 (-):执行减法运算,用于求两个数...

    java 操作运算符

    `(非)、`&`(逻辑与)、`|`(逻辑或)、`^`(异或)以及`&&`和`||`的短路逻辑运算符。这些运算符处理布尔值,例如`!(true)`返回false,`true & false`返回false,`true | true`返回true,`true && false`返回false...

    java代码-日常练习7,逻辑运算符

    此外,Java还提供了短路逻辑运算符。对于逻辑与(`&&`),如果第一个表达式为假,那么第二个表达式不会被评估,因为结果已经确定为假。对于逻辑或(`||`),如果第一个表达式为真,那么第二个表达式也不会被评估,因为...

    JAVA 运算符的基本了解与使用

    Java 中还提供了一些短路逻辑运算符,例如 && 和 ||,它们可以根据左边的条件来决定是否执行右边的条件。 6. 位运算符 位运算符是对二进制位的操作,包括与运算 (&)、或运算 (|)、异或运算 (^)、按位非运算 (~) 等...

Global site tag (gtag.js) - Google Analytics