文章目录
前言
本文重点讲解了各种运算符及使用方法
一、运算符是什么?
运算符是在编程中用于完成各种数学和逻辑操作的符号。它们可以用于执行基本算术操作,如加法、减法、乘法和除法,以及比较操作,如等于、大于和小于。此外,运算符还可以用于逻辑操作,如逻辑与、逻辑或和逻辑非。运算符是编程中非常重要的一部分,它们可以帮助我们完成各种复杂的计算和判断。
二、运算符有哪些种类
运算符可以分为算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符等不同类型。不同的运算符具有不同的优先级和结合性,可以通过运算符优先级来确定运算顺序。
1.算数运算符
是用于进行数学运算的运算符
算术运算符有 + - * / % ++ –
① +
+具有两种使用方式,一种是作为连接符,用来连接字符串。二是作为数据间的运算符。
- 作为连接符:用来连接字符串或多个字符串的符号。当数据类型不同时,会自动转换成相同的数据类型在转换成字符串类型。
public class Test2 {
public static void main(String[] args) {
char a = 'A';
int b = 0;
int c = a + b;
System.out.println("aa"+a);
}
}
- 作为运算符:对数值进行加法运算,包括字符类型,字符类型做加减运算时会自动转化成整型。
public class Test2 {
public static void main(String[] args) {
char a = 'A';
//’A‘的ascll值为65
int b = 3;
System.out.println(a + b);
}
}
② - * /
- 正常的运算符来使用
- 整数相除的得到的仍是整数,比如在程序中10 / 3 的答案是3 而不是3.33。
③%
- 取模运算符,用来取整数相除余数的运算符,例如:10 % 3 = 1。
④++ –
- ++ 是自增运算符,对变量自身进行自增的操作, +1的操作
- – 是自减运算符,对变量自身进行自减的操作, -1的操作
public class operator {
public static void main(String[] args) {
int a = 10;
System.out.println(a++);
System.out.println(++a);
int b = 20;
System.out.println(b--);
System.out.println(--b);
}
}
a++是先运行该行代码再进行自增,而++a是先进行自增在进行代码运算。包含强制类型转换,例如a++相当于 a = (a的类型)(a + 1),所以byte类型的变量进行自增自减操作后仍是byte类型。同理,自减运算也是如此。
- 练习
public class operator {
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = --a + b-- + a++ + --b - ++a;
// 9 20 9 18 11 c = 45
System.out.println(c);
}
}
2.赋值运算符
字面意思,是用于赋值的运算符,赋值运算符有 = += -= *= /=等,
① =
最基础的赋值运算符,作用是给变量赋值,例如 byte a; a = 5;
② += -= *= /=
将等号左右的式子相加相见相乘相除赋值给左边, 隐含了强制类型转化
a += 5; 实际运行的是 a = (a的数据类型)(a + 5);
3.比较运算符
比较运算符有 > < == >= <= != 返回的都是布尔类型的,常用于判断。
① > <
用于比较大小
例如 5 > 4 返回的结果是true ,4 > 5 返回的结果为false。
② ==
判断双方变量是否相等,相等就返回结果true,反之就false。
③ >= <=
用于比较大小,但包括相等也返回true;其它一①一样。
④ !=
与 == 相反,!=是不等返回true,相等返回false
public class operator {
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = 10;
int d = 5;
//false
System.out.println(a > b);
//true
System.out.println(a < b);
//false
System.out.println(c > a);
//true
System.out.println(c >= a);
//true
System.out.println(c <= a);
//true
System.out.println(a == c);
//false
System.out.println(a != c);
}
}
4.逻辑运算符
逻辑运算符有 & | ! ^ && ||
逻辑运算符用于对逻辑表达式进行操作,它们的作用是根据逻辑值(True或False)对表达式进行组合和求值。
①逻辑与 &
用于判断多个语句是否同时为true, 当语句同时为真时,返回true;当有一方为假时或都为假时返回false。
②逻辑或 |
用于判断多个语句是否为true, 当语句有一方为真或都为真时,返回true;都为假时返回false。
③取反 !
用于判断单个语句的真假的反面,当语句为真时返回false,语句为假时返回true。
④异或 ^
用于判断语句真假是否相同,相同返回false,不同返回true。
⑤&& ||
它们具有短路效应,其余与 & 和 | 功能一样。
&& 当左边为false,则右边不执行 ;有false则为false。
|| 当左边为true,则右边不执行;有true则为true。
```java
public class operator {
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = 10;
int d = 5;
//短路效应展示
System.out.println((a<d)&&((++a) > c));
System.out.println((a>d)||((++a) > c));
System.out.println(a);
}
}
从答案得知,右侧语句的自增语句没有运行。
5.三元运算符
格式:数据类型 变量 = boolean表达式 ? 表达式1 : 表达式2 ;
执行流程:算出boolean表达式的结果, 如果结果为true, 则将"表达式1的值" 作为最终结果, 否则将"表达式2的值"作为结果
public class operator {
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = 10;
int d = 5;
//三元运算符
a = (a > d) ? a : d;
System.out.println(a);
a = (a < d) ? a : d;
System.out.println(a);
}
}
6.位运算符
位运算符常用于对二进制数进行位操作,例如进行位运算、位掩码、位反转等操作。在程序中使用位运算符可以提高运算的效率。
- 按位与(&):两个对应的二进制位都为1时,结果为1;否则结果为0。
int a = 5; // 二进制表示为 101
int b = 3; // 二进制表示为 011
int result = a & b; // result = 1(二进制表示为 001)
int a = 5; // 二进制表示为 101
int b = 3; // 二进制表示为 011
int result = a & b; // result = 1(二进制表示为 001)
```-```angelscript
int a = 5; // 二进制表示为 101
int b = 3; // 二进制表示为 011
int result = a & b; // result = 1(二进制表示为 001)
- 按位或(|):两个对应的二进制位中有一个为1时,结果为1;否则结果为0。
int a = 5; // 二进制表示为 101
int b = 3; // 二进制表示为 011
int result = a | b; // result = 7(二进制表示为 111)
int a = 5; // 二进制表示为 101
int b = 3; // 二进制表示为 011
int result = a | b; // result = 7(二进制表示为 111)
int a = 5; // 二进制表示为 101
int b = 3; // 二进制表示为 011
int result = a | b; // result = 7(二进制表示为 111)
- 按位异或(^):两个对应的二进制位不相同时,结果为1;否则结果为0。
int a = 5; // 二进制表示为 101
int b = 3; // 二进制表示为 011
int result = a ^ b; // result = 6(二进制表示为 110)
int a = 5; // 二进制表示为 101
int b = 3; // 二进制表示为 011
int result = a ^ b; // result = 6(二进制表示为 110)
int a = 5; // 二进制表示为 101
int b = 3; // 二进制表示为 011
int result = a ^ b; // result = 6(二进制表示为 110)
- 按位取反(~):对二进制数进行取反操作,即0变1,1变0。
int a = 5; // 二进制表示为 101
int result = ~a; // result = -6(二进制表示为 11111111111111111111111111111010)
int a = 5; // 二进制表示为 101
int result = ~a; // result = -6(二进制表示为 11111111111111111111111111111010)
int a = 5; // 二进制表示为 101
int result = ~a; // result = -6(二进制表示为 11111111111111111111111111111010)
- 左移(<<):将二进制数向左移动指定位数,右边空出的位用0填充。
int a = 5; // 二进制表示为 101
int result = a << 2; // result = 20(二进制表示为 10100)
int a = 5; // 二进制表示为 101
int result = a << 2; // result = 20(二进制表示为 10100)
int a = 5; // 二进制表示为 101
int result = a << 2; // result = 20(二进制表示为 10100)
- 右移(>>):将二进制数向右移动指定位数,左边空出的位用原来的符号位填充。
int a = 20; // 二进制表示为 10100
int result = a >> 2; // result = 5(二进制表示为 101)
int a = 20; // 二进制表示为 10100
int result = a >> 2; // result = 5(二进制表示为 101)
int a = 20; // 二进制表示为 10100
int result = a >> 2; // result = 5(二进制表示为 101)
总结
本文介绍了常用的各种运算符,重点熟悉前五个即可,位运算符了解即可。