[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短路逻辑运算符.zip34.java短路逻辑运算符.zip34.java短路逻辑运算符.zip34.java短路逻辑运算符.zip34.java短路逻辑运算符.zip34.java短路逻辑运算符.zip34.java短路逻辑运算符.zip34.java短路逻辑运算符.zip...
在Java编程语言中,逻辑运算符是用于处理布尔值(true或false)的关键工具,它们在构建复杂的条件语句和控制程序流程时起着至关重要的作用。本资源着重讲解Java中的逻辑运算符及其用法。 1. **逻辑与(&&)**:此...
Java 语言中有两种类型的逻辑运算符:短路运算符和非短路运算符。短路运算符包括“&&”和“||”,它们在逻辑表达式中使用,具有短路特性,即如果第一个表达式的结果已经确定了整个表达式的结果,那么就不再执行后续...
Java语言中的逻辑运算符是程序设计中不可或缺的一部分,它们用于处理布尔值(true或false)并帮助构造复杂的条件语句。在本资料中,我们将深入探讨Java中的逻辑运算符,包括逻辑与(&&), 逻辑或(||), 逻辑非(!)以及...
逻辑运算符 &&、 ||、 ! 注意:逻辑计算支持短路操作 表达多个条件之间的关系。例如年龄大于等于18并且年龄小于65 &&:与运算,含义是两个条件必须同时成立,可以翻译为并且 ||:或运算,含义是两个条件中成立一个...
短路逻辑运算符(&&和||)的特点是如果第一个操作数能确定整个表达式的值,就不会计算第二个操作数。 **赋值运算符**:如`=`用于将右边的值赋给左边的变量。还有复合赋值运算符,如`+=`、`-=`、`*=`、`/=`和`%=`,...
在Java编程语言中,逻辑运算符是用于处理布尔值(true或false)的关键工具,它们在构建复杂的条件语句和控制程序流程时起着至关重要的作用。本章将深入探讨Java中的逻辑运算符及其用法。 一、逻辑运算符类型 1. ...
逻辑运算符 逻辑运算符是 Java 编程...在实际编程中,短路逻辑运算符可以提高程序的效率,因为它们可以避免执行不必要的操作数。然而,在某些情况下,非短路逻辑运算符更加适合,因为它们可以确保所有操作数都被执行。
在Java编程语言中,逻辑运算符是用于处理布尔值(`true`或`false`)的关键工具,它们在条件语句和控制流程中扮演着重要角色。这些运算符帮助我们组合和评估多个条件,以便更好地控制程序的执行路径。本节将深入探讨...
在Java中,逻辑运算符的使用非常重要,如判断多个条件是否同时满足、判断某个条件是否满足等。在编程中,逻辑运算符经常与关系运算符结合使用,以实现更复杂的逻辑判断。 在Java中,逻辑运算符的优先级高于关系...
在Java编程语言中,逻辑运算符是用于组合布尔表达式的关键工具,它们帮助开发者基于一组条件来决定程序的流程。本文将深入探讨两种类型的“与”运算符(&&和&)以及两种类型的“或”运算符(||和|),并阐述它们之间...
能使用逻辑运算符组合条件 已知一个三角形的三条边长已经存放在变量a,b,c中,如何确定这个三角形能成立呢?条件如何写? 引入 a c b a+b>c , a+c>b , b+c>a a+b>c && a+c>b && b+c>a 检验一个数x是否被2或3整除,...
9. **位运算符**:在一些低级别的编程或特定场景下,逻辑运算符还与位操作结合使用,如位与(&)、位或(|)和位非(~)。这些运算符在处理二进制数据时非常有用。 10. **在函数参数中的应用**:逻辑运算符可以作为...
Java中的逻辑运算符包括逻辑与&,逻辑或|,逻辑非!逻辑异或^,除此之外还有几个比较相似的&&短路与,||短路或。 那么这几个逻辑运算符到底有什么意思呢?下面我们来看看 首先看逻辑与&的用法,只有两个都为真...
根据功能不同,Java的运算符主要分为四类:算术运算符、关系运算符、逻辑运算符和位运算符。 1. 算术运算符 算术运算符包括一元运算符和二元运算符。一元运算符如正号 (+)、负号 (-)、自增 (++) 和自减 (--),它们...
此外,Java还提供了短路逻辑运算符,如逻辑与(&)和逻辑或(|),它们的区别在于当第一个表达式足以确定整个结果时,短路运算符不会评估第二个表达式。这在处理可能抛出异常或有副作用的操作时特别有用。 学习和...
在Java中,运算符主要分为四大类:算术运算符、关系运算符、逻辑运算符和位运算符。 1. **算术运算符** - 加法运算符 (+):将两个数值相加,适用于整数、浮点数。 - 减法运算符 (-):执行减法运算,用于求两个数...
`(非)、`&`(逻辑与)、`|`(逻辑或)、`^`(异或)以及`&&`和`||`的短路逻辑运算符。这些运算符处理布尔值,例如`!(true)`返回false,`true & false`返回false,`true | true`返回true,`true && false`返回false...
此外,Java还提供了短路逻辑运算符。对于逻辑与(`&&`),如果第一个表达式为假,那么第二个表达式不会被评估,因为结果已经确定为假。对于逻辑或(`||`),如果第一个表达式为真,那么第二个表达式也不会被评估,因为...
Java 中还提供了一些短路逻辑运算符,例如 && 和 ||,它们可以根据左边的条件来决定是否执行右边的条件。 6. 位运算符 位运算符是对二进制位的操作,包括与运算 (&)、或运算 (|)、异或运算 (^)、按位非运算 (~) 等...