栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

前++与后++ /逻辑运算符 &&与 &的区别

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

前++与后++ /逻辑运算符 &&与 &的区别

关于Java的学习 ->今天遇到的两个易错知识点
1)算术运算符中 ++
2)逻辑运算符中 短路与&& 逻辑与&

1.算术运算符中 ++

作为独立语言使用时:前++和后++都完全等价于i = i + 1
作为表达式中使用时:前++: ++先自增后赋值;后++: ++先赋值后自增

下面我们用个例子演示一下

public class Arithmetic{
	public static void main(String[] args){
		int i = 8;
		int m = i++; //前++ (1)m=i;(2)i=i+1
		int n = ++i; //后++ (1)i=i+1;(2)n=i
		System.out.println("m="+m+"/t"+"n="+n); //8 9
	}
}

这里有两道很有意思的面试题,值得你一看

// 题1
public class Arithmetic{
	public static void main(String[], args){
		int i = 1;
		i = i ++; // (1)temp=i;(2)i=i+1=2;(3)i=temp
		System.out.println(i); //1
	}
}
// 题2
public class Arithmetic{
	public static void main(String[], args){
		int i = 1;
		i = ++i; // (1)i=i+1=2;(2)temp=i;(3)i=temp
		System.out.println(i); //2
	}
}

2.赋值运算符
3.关系运算符(比较运算符)
4.逻辑运算符
(1)&&与&
&&短路与:如果第一个条件为false,则第二个条件不会判断,最后结果为false,效率高;在实际开发中,我们使用的基本都是短路与&&
&逻辑与:不管第一个条件是否为false,第二个条件都要判断,效率低。
为了进一步区分两者的差异;这里我用一行简短的代码演绎一下;

// 短路与&&
public class LogicOperator01{
	public static void main(String[] args){
		int a = 5;
		int b = 20;
		if (a > 10 && ++b < 50){ 
			System.out.println("okk01");
		}System.out.println("a="+a+"b="+b); // a=5; b=20		
	}	
}
// 逻辑与&
public class LogicOperator01{
	public static void main(String[] args){
		int a = 5;
		int b = 20;
		if (a > 10 & ++b < 50){ 
			System.out.println("okk01");
		}System.out.println("a="+a+"b="+b); // a=5; b=21		
	}	
}

(2)||与I
短路或||:如果第一个条件为true,则第二条件不会判断,最终结果为true;效率高,开发中偏爱用||
逻辑或|:不管第一个条件是否为true,第二个条件都要判断,效率低
其实这里的道理和上述相似,这里就不演示了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/571925.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号