Maison >Java >javaDidacticiel >Expliquer les opérateurs Java en détail (partage récapitulatif)
Cet article vous apporte des connaissances pertinentes sur java Il présente principalement des problèmes liés aux opérateurs Java, notamment les opérateurs arithmétiques, les opérateurs relationnels, les opérateurs logiques, etc. J'espère qu'il sera utile à tout le monde.
Apprentissage recommandé : "Tutoriel Java"
opérateur | signification |
---|---|
+ | somme |
- | phase Soustraire le produit de |
– | |
1.1 ++ avant une variable | |
Lorsque ++ apparaît après la variable, il effectuera d'abord l'opération d'affectation puis ajoutera 1 |
int m = 20; int n = m++; 步骤: ① ② System.out.println(n); // 20 System.out.println(m); // 21 | 1.3 Surtout, en version imprimée
2.1 -- avant une variable |
Quand – apparaît après la variable, il fera le opération d'affectation d'abord
puis décrémenter 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
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
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 (当然会自动损失精度了。)
当–出现在变量前,会先自减一
,在做赋值运算
当–出现在变量后,会先做赋值运算
,再自减1
注意:
对于++运算符来说:
1.可以出现在变量前,也可以出现在变量后。
2.不管出现在变量前还是后,总之++执行结束之后,变量的值一定会自加1。
运算符 | 含义 |
---|---|
> | 大于 |
>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
== | 等于 |
!= | 不等于 |
注意:所有的关系运算符的运算结果都是布尔类型,不是true就是false,不可能是其他值。
运算符 | 含义 | 结果 |
---|---|---|
& | 逻辑与(可以翻译成并且) | 两边都是true,结果才是true |
│ | 逻辑或(可以翻译成或者) | 有一边是true,结果就是true |
! | 逻辑非(取反) | !true = false、!false = true |
&& | 短路与 | 两边都是true,结果才是true |
││ | 短路或 | 有一边是true,结果就是true |
首先这两个运算符的运算结果没有任何区别,完全相同。
只不过“短路与&&”会发生短路
现象。
布尔表达式 ? 表达式1 : 表达式2
右边表达式不执行,这种现象叫做短路现象。
从效率方面来说,&&比&的效率高一些。
因为逻辑与&不管第一个表达式结果是什么,第二个表达式一定会执行。
以后的开发中,短路与&&和逻辑与还是需要同时并存的。
大部分情况下都建议使用短路与&&只有当既需要左边表达式执行,又需要右边表达式执行的时候,才会选择逻辑与&。
跟短路与类似
char a = true ? '男' : "女"; string a1 = true ? '男' : "女"; 以上两个都报错。 //下面可以 String s = ""; s += true ? '男' : "女";
false
的时候,右边的表达式不执行true
Pour l'opérateur ++ :
1. Il peut apparaître avant une variable ou après une variable .
2. Qu'elle apparaisse avant ou après la variable, en bref, après la fin de l'exécution de ++, la valeur de la variable augmentera définitivement de 1. 2. Opérateur relationnel
== | |
!= | |
Remarque : tous les opérateurs relationnels Les résultats sont tous de type booléen, vrai ou faux, ne peuvent pas être d'autres valeurs. | 3. Opérateurs logiques |
Opérateur | Signification |
court-circuit
. 🎜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 Qu'est-ce que le phénomène de court-circuit ? 🎜🎜L'expression de droite n'est pas exécutée. Ce phénomène est appelé phénomène de court-circuit. 🎜🎜1.3 Quand utiliser && et quand utiliser & ? 🎜🎜En termes d'efficacité, && est plus efficace que &.
false.
, l'expression de droite n'est pas exécutée🎜🎜true
, l'expression sur le droit n'est pas exécuté🎜🎜🎜 🎜🎜🎜Remarque🎜🎜 : Les deux côtés de l'opérateur logique doivent être de type booléen, et le résultat final de l'opération est également de type booléen. 🎜🎜4. Opérateur d'affectation🎜🎜🎜🎜🎜Opérateur🎜🎜 Signification🎜🎜🎜🎜🎜🎜=🎜🎜Assignation🎜🎜🎜🎜+=🎜🎜Supplémentaire (ajouter/ajouter ce numéro au d'origine) 🎜 🎜🎜🎜-= 🎜🎜soustraction (même raison) 🎜🎜🎜🎜*=🎜🎜 multiplication (même manière) 🎜🎜🎜🎜/=🎜🎜division (même manière) 🎜🎜🎜🎜%=🎜🎜module Attendre (même raison)🎜 🎜🎜 🎜注:除了第一个是赋值运算符,其他都死拓展赋值运算符!!
使用扩展赋值运算符
的时候,永远都不会改变
运算结果类型。
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 (当然会自动损失精度了。)
布尔表达式 ? 表达式1 : 表达式2
布尔表达式的结果为true
时,表达式1
的执行结果作为整个表达式的结果。
布尔表达式的结果为false
时,表达式2
的执行结果作为整个表达式的结果。
好玩点:
char a = true ? '男' : "女"; string a1 = true ? '男' : "女"; 以上两个都报错。 //下面可以 String s = ""; s += true ? '男' : "女";
求和
字符串拼接
数字类型
的时候,求和。任意一边
”是字符串类型
,那么这个+会进行字符串拼接操作。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详细教程》
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!