1.首先我们编写一段程序。
/*
* Copyright (c) 2021, 2023, All rights reserved.
*
*/
package cn.kgc;
/**
* <p>Project: Hello - Test08</p>
* <p>Powered by scl On 2023-07-06 19:37:21</p>
* <p>描述:<p>
*
* @author scl [1846080280@qq.com]
* @version 1.0
* @since 17
*/
public class Test08 {
public static void main(String[] args) {
int i=3;
System.out.println(i>4&&++i>2);//false
System.out.println(i);
System.out.println("********************");
System.out.println(i>4 & ++i>2);//false
System.out.println(i);
}
}
我们可以思考一下第一个i和第二个i的结果是否一致呢???我们实践出真知:
结果很明显,很多小伙伴就有疑问了,那为什么第二个i会加1呢???
我们就解释一下&&和&的区别:首先我们都知道这两个语句都是false,而&&在判断第一个条件后得到了false就不继续判断第二个语句了,所以也就不会执行++i了。但是&在判断第一个语句得到错误后依旧会继续判断第二个语句,自然而然也就执行++i了。从某种程度上将&&要比&的执行效率高一点。
但是 || 和 | 判断完前边是假仍会判断后边的内容。
System.out.println(false||(true&&!false)); //返回true
System.out.println(false|(true&&!false)); //返回true
总结为一真即真。