> Java > java지도 시간 > Java 연산자에 대해 자세히 설명(요약 공유)

Java 연산자에 대해 자세히 설명(요약 공유)

PHPz
풀어 주다: 2022-03-09 20:17:40
앞으로
4986명이 탐색했습니다.

이 기사는 java에 대한 관련 지식을 제공합니다. 주로 산술 연산자, 관계 연산자, 논리 연산자 등을 포함한 Java 연산자에 관한 내용을 소개합니다. 모든 분들께 도움이 되기를 바랍니다.

Java 연산자에 대해 자세히 설명(요약 공유)

추천 학습: "java tutorial"

1. 산술 연산자

–자기 감소 1. ++ 연산자1.1 ++ 변수 앞에 ++가 변수 앞에 나타나면 자체적으로 1씩 증가합니다. code> 할당 작업 전
	int x = 100;
	int y = ++x;
	步骤: ②	 ①
	System.out.println(x); // 101
	System.out.println(y); // 101
로그인 후 복사
1.3 특히 인쇄에서는
	int c = 90;
	System.out.println(c++);  // 传,这个“传”在这里有一个隐形的赋值运算。90
	// 把上面代码拆解开
	//int temp = c++;
	//System.out.println(temp);
	
	
	int d = 80;
	System.out.println(++d); //81
	// 拆解
	//int temp2 = ++d;
	//System.out.println(temp2);
로그인 후 복사
2. -- 연산자(예는 ++ 연산자와 동일) 2.1 -- 변수 앞 –가 앞에 나타납니다. 변수, 가 먼저 감소됩니다 1, 할당 작업을 수행합니다
operator 의미
+ summation
- phase 제품 빼기 of
1.2 ++ 변수 뒤
변수 뒤에 ++가 나타나면 할당 작업을 먼저 수행한 다음 추가합니다. 1
	int m = 20;
	int n = m++;
	步骤: ①	 ②
	System.out.println(n); // 20
	System.out.println(m); // 21
로그인 후 복사

2.2 --변수 뒤

변수 뒤에 –가 나타나면 할당을 수행합니다. 먼저 연산한 다음 1先自加一,在做赋值运算

	int x = 10;
	int y = 11;
	System.out.println(x > y & x > y++); //false
	// 通过这个测试得出:x > y++ 这个表达式执行了。
	System.out.println(y); // 12
	
	//测试短路与&&
	int m = 10;
	int n = 11;
	// 使用短路与&&的时候,当左边的表达式为false的时候,右边的表达式不执行
	// 这种现象被称为短路。
	System.out.println(m > n && m > n++);
	System.out.println(n); // 11
로그인 후 복사

1.2 ++在变量后

当++出现在变量后,会先做赋值运算,再自加1

	int x = 10;
	int y = 11;
	System.out.println(x < y | x > y++); //teur
	// 通过这个测试得出:x > y++ 这个表达式执行了。
	System.out.println(y); // 12
	
	//测试短路或||
	int m = 10;
	int n = 11;
	// 使用短路或||的时候,当左边的表达式为true的时候,右边的表达式不执行
	// 这种现象被称为短路。
	System.out.println(m < n || m > n++);
	System.out.println(n); // 11
로그인 후 복사

1.3 特别地,在print中

	int m = 10;
	m += 10; 类似于 m = m + 1;------->注意是类似!!!!

	实际不同:
		i = i + 10; 和 i += 10;一样吗?
			byte i = 10;
			
			i += 10;----->没报错
			其实 x += 1 等同于:x = (byte)(x + 1);
	
			i = i + 10;---->错误: 不兼容的类型: 从int转换到byte可能会有损失
			编译器检测到x + 1是int类型,int类型不可以直接赋值给byte类型的变量x!
			详见Java类型转换的时候需要遵循的规则第六点
			
			i += 190; // i = (byte)(i + 190);
			System.out.println(i); // 44 (当然会自动损失精度了。)
로그인 후 복사

2. --运算符(例子同++运算符)

2.1 --在变量前

当–出现在变量前,会先自减一,在做赋值运算

2.2 --在变量后

当–出现在变量后,会先做赋值运算,再自减1

注意:
对于++运算符来说:
     1.可以出现在变量前,也可以出现在变量后。
     2.不管出现在变量前还是后,总之++执行结束之后,变量的值一定会自加1。

二、关系运算符

运算符 含义
> 大于
>= 大于等于
<小于
<=小于等于
==等于
!=不等于

注意:所有的关系运算符的运算结果都是布尔类型,不是true就是false,不可能是其他值。

三、逻辑运算符

运算符含义结果
&逻辑与(可以翻译成并且)两边都是true,结果才是true
逻辑或(可以翻译成或者)有一边是true,结果就是true
!逻辑非(取反)!true = false、!false = true
&&短路与两边都是true,结果才是true
││短路或有一边是true,结果就是true

1.短路与 &&

1.1短路与&& 和 逻辑与 &有什么区别?

首先这两个运算符的运算结果没有任何区别,完全相同。
只不过“短路与&&”会发生短路现象。

	布尔表达式 ? 表达式1 : 表达式2
로그인 후 복사

1.2什么是短路现象呢?

右边表达式不执行,这种现象叫做短路现象。

1.3什么时候使用&&,什么时候使用& ?

从效率方面来说,&&比&的效率高一些。
因为逻辑与&不管第一个表达式结果是什么,第二个表达式一定会执行。

以后的开发中,短路与&&和逻辑与还是需要同时并存的。
大部分情况下都建议使用短路与&&只有当既需要左边表达式执行,又需要右边表达式执行的时候,才会选择逻辑与&。

2.短路或 ||

跟短路与类似

	char a = true ? &#39;男&#39; : "女";
	string a1 = true ? &#39;男&#39; : "女";
	以上两个都报错。	
	//下面可以
	 String  s = "";
	 s += true ? &#39;男&#39; : "女";
로그인 후 복사

3.总结

  1. 使用短路与 && 的时候,当左边的表达式为false的时候,右边的表达式不执行
  2. 使用短路或 || 的时候当左边的表达式结果是true
참고:


++ 연산자의 경우:
1. 변수 앞이나 뒤에 나타날 수 있습니다.
2. 변수 앞이나 뒤에 나타나든 상관없이 간단히 말해서 ++ 실행이 끝나면 변수의 값은 반드시 1씩 증가합니다. 2. 관계 연산자

연산자 의미 > <은 <= 보다 작거나 같음 ==같음!=같지 않음 3. 논리 연산자연산자의미
참고: 모든 관계 연산자 결과는 모두 부울 유형이며 true 또는 false이며 다른 값이 될 수 없습니다.
🎜Result🎜🎜🎜🎜🎜🎜&🎜🎜논리 AND(AND로 번역 가능)🎜🎜양쪽 모두 참이면 결과도 참🎜 🎜 🎜🎜│🎜🎜논리적 OR(or로 번역 가능)🎜🎜한쪽이 참이면 결과는 참🎜🎜🎜🎜!🎜🎜논리적 NOT(역전)🎜🎜!true = false, !false = true🎜 1 . 단락 및 &&🎜🎜🎜1.1 단락 AND&&와 논리 AND&의 차이점은 무엇입니까? 🎜🎜우선, 이 두 연산자의 결과에는 차이가 없으며 정확히 동일합니다.
그러나 "&&"로 단락하면 단락 현상이 발생합니다. 🎜
	int a = 100;
	int b = 200;
	// 这里的 + 两边都是数字,所以加法运算
	int c = a + b;
	System.out.println(a + "+" + b + " = "  + a + b);//100+200=100200
	System.out.println(a + "+" + b + " = "  + (a + b));//100+200=300
로그인 후 복사
🎜1.2 단락현상이란? 🎜🎜오른쪽 표현이 실행되지 않는 현상을 쇼트 현상이라고 합니다. 🎜🎜1.3 언제 &&를 사용하고 언제 &를 사용합니까? 🎜🎜효율성 측면에서 &&는 &보다 효율적입니다.
논리 AND & 때문에 첫 번째 표현식의 결과가 무엇이든 두 번째 표현식은 반드시 실행됩니다. 🎜🎜향후 개발에서는 단락과 &&, 논리 AND가 동시에 공존해야 합니다.
대부분의 경우 단락 AND &&를 사용하는 것이 좋습니다. 왼쪽 표현식과 오른쪽 표현식을 모두 실행해야 하는 경우에만 논리 AND &를 선택합니다. 🎜🎜2. 단락 또는 ||🎜🎜🎜은 단락과 유사합니다🎜🎜rrreee🎜3. 요약🎜
  1. 🎜단락 및 &&를 사용할 때 왼쪽의 표현식이 false인 경우 , 오른쪽의 표현식은 실행되지 않습니다🎜🎜
  2. 🎜단락이나 ||를 사용할 경우, 왼쪽의 표현식의 결과가 true일 때, 오른쪽은 실행되지 않습니다🎜🎜🎜 🎜🎜🎜Note🎜🎜: ​​​​논리연산자는 양쪽 모두 부울형이어야 하며, 최종 연산 결과도 부울형입니다. 🎜🎜4. 할당 연산자🎜🎜🎜🎜🎜Operator🎜🎜 의미🎜🎜🎜🎜🎜🎜=🎜🎜Assignment🎜🎜🎜🎜+=🎜🎜추가(원본에 이 번호 추가/추가) 🎜 🎜🎜🎜-= ㅋㅋㅋ 🎜🎜 🎜

    注:除了第一个是赋值运算符,其他都死拓展赋值运算符!!

    很重要的语法机制:

    使用扩展赋值运算符的时候,永远都不会改变运算结果类型。

    	int m = 10;
    	m += 10; 类似于 m = m + 1;------->注意是类似!!!!
    
    	实际不同:
    		i = i + 10; 和 i += 10;一样吗?
    			byte i = 10;
    			
    			i += 10;----->没报错
    			其实 x += 1 等同于:x = (byte)(x + 1);
    	
    			i = i + 10;---->错误: 不兼容的类型: 从int转换到byte可能会有损失
    			编译器检测到x + 1是int类型,int类型不可以直接赋值给byte类型的变量x!
    			详见Java类型转换的时候需要遵循的规则第六点
    			
    			i += 190; // i = (byte)(i + 190);
    			System.out.println(i); // 44 (当然会自动损失精度了。)<h2>五、条件运算符</h2>
    <h2>1.语法格式:(三目运算符。)</h2>
    <pre class="brush:php;toolbar:false">	布尔表达式 ? 表达式1 : 表达式2
    로그인 후 복사

    2.执行原理是什么?

    布尔表达式的结果为true时,表达式1的执行结果作为整个表达式的结果。
    布尔表达式的结果为false时,表达式2的执行结果作为整个表达式的结果。

    好玩点

    	char a = true ? '男' : "女";
    	string a1 = true ? '男' : "女";
    	以上两个都报错。	
    	//下面可以
    	 String  s = "";
    	 s += true ? '男' : "女";
    로그인 후 복사

    六、字符串连接运算符(+)

    1.+ 运算符在java语言中有两个作用。

    1. 作用1:求和
    2. 作用2:字符串拼接

    2.什么时候求和?什么时候进行字符串的拼接呢?

    • 当 + 运算符两边都是数字类型的时候,求和。
    • 当 + 运算符两边的“任意一边”是字符串类型,那么这个+会进行字符串拼接操作。

    3.一定要记住:字符串拼接完之后的结果还是一个字符串。

    	int a = 100;
    	int b = 200;
    	// 这里的 + 两边都是数字,所以加法运算
    	int c = a + b;
    	System.out.println(a + "+" + b + " = "  + a + b);//100+200=100200
    	System.out.println(a + "+" + b + " = "  + (a + b));//100+200=300
    로그인 후 복사

    :遵循“自左向右”的顺序依次执行。(除非额外添加了小括号,小括号的优先级高)

    推荐学习:《java详细教程

    위 내용은 Java 연산자에 대해 자세히 설명(요약 공유)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿