java运算符
java提供了多种运算符,这些运算符除了数学上的运算,还可以进行逻辑运算、地址值的运算。
常见的运算符包括算术运算符、关系运算符、逻辑运算符、三目运算符、赋值运算符。
使用运算符进行运算时,注意运算符的优先级,先算什么再去算什么
-
算术运算符
运算符 解释 + 加法运算(字符串连接运算) - 减法运算 * 乘法运算 / 除法运算 % 取模(取余)运算(两数相除取余数) ++ 自增运算 – 自减运算 四则运算:
/** * @author hgw * @date 2022年01月15日9:53 **/ public class Test { public static void main(String[] args) { int num1 = 10 ; int num2 = 5 ; System.out.println(num1 + " + " + num2 + " = " + (num1 + num2)); System.out.println(num1 + " - " + num2 + " = " + (num1 - num2)); System.out.println(num1 + " * " + num2 + " = " + (num1 * num2)); //当运算的过程中不存在浮点(单精度或者双精度)的话就可以理解为是整除运算 System.out.println(num1 + " / " + num2 + " = " + (num1 / num2)); System.out.println(10 + " / " + 3 + " = " + (10 / 3)); System.out.println(10.0 + " / " + 3 + " = " + (10.0 / 3)); System.out.println(10 + " / " + 3.0 + " = " + (10 / 3.0)); System.out.println(11 + " % " + num2 + " = " + (11 % num2)); //++自增 自增运算符在右边可以理解为是 num1 = num1 + 1 ,就是10 + 1之后等于11,把得出的11再次通过赋值号= ,赋值给了 num1 System.out.println(++num1); //num1 = 11 System.out.println(num1); //num1 = 11 System.out.println("======"); //演示 ++在数值右边 System.out.println(num2); //num2 = 5 System.out.println(num2++); //num2 = 5 这不相当于只对数值进行了加操作,没对其进行赋值操作 System.out.println(num2); //num2 = 6 //--的话同理,略嘻嘻嘻 } }
-
关系(比较)运算符
比较运算符,用于判断表达式中的两值之间的关系,结果为Boolean布尔值,true或false
> 大于 < 小于 >= 大于等于 <= 小于等于 != 不等于 == 等于(判断两值是否相等) 代码演示:
/** * @author hgw * @date 2022年01月15日11:01 **/ public class Test2 { public static void main(String[] args) { int x = 5 ; int y = 6 ; int z = 6 ; System.out.println(x + "是否大于" + y + ":" + (x > y)); System.out.println(x + "是否小于" + y + ":" + (x < y)); System.out.println(y + "是否大于等于" + z + ":" + (y >= z)); System.out.println(x + "是否小于等于" + z + ":" + (x <= z)); System.out.println(x + "不等于" + z + ":" + (x != z)); System.out.println(y + "不等于" + z + ":" + (y == z)); } }
-
逻辑运算符
& and与,全为true,结果才为true && 短路与,当发现一个为false不进行后面表达式的判断 | or或,一个为true则为true || 短路or,当发现一个结果为true的时候,结果直接为true,不进行后面其他值的判断 ! not非,取反,值为false结果为true,值为true结果为false 代码演示:
/** * @author hgw * @date 2022年01月15日11:39 **/ public class Test3 { public static void main(String[] args) { int x = 3 ; int y = 4 ; int z = 5 ; // & 两个表达式全为true,则结果为true // && 两个表达式全为true,则结果为true boolean flag = ((y > x) & (z >y)); boolean flag2 = ((x > y) && (z >y)); System.out.println(flag); System.out.println(flag2); System.out.println("======="); //| 一个表达式为true,则结果为true //|| 当发现一个结果为true的时候,结果直接为true,不进行后面其他值的判断 boolean flag3 = ((x > y) | (z >y)); // false | true 有一个为true 则结果为true boolean flag4 = ((y > x) || (z >y)); // 第一个表达式为true, 不进行后面的比较 ,结果直接为true System.out.println(flag3); System.out.println(flag4); System.out.println("======="); boolean flag5 = !(x > y); //x > y 为false 取反,结果为true System.out.println(flag5); } }
-
赋值运算符
= 赋值 += 加等于 -= 减等于 *= 乘等于 /= 除等于 %= 取余等于 /** * @author hgw * @date 2022年01月15日13:08 **/ public class Test4 { public static void main(String[] args) { int count = 2 ; int sum = 0 ; // sum = sum + count ; System.out.println(sum + " + " + count + " = " + (sum + count)); //count =2 sum = 0 // 同理sum = sum + count ; == sum += count System.out.println(sum += count); //count = 2 sum = 2 System.out.println("======="); System.out.println(sum + " - " + count + " = " + (sum - count)); // sum = 0 count = 0 System.out.println(sum -= count); // -2 sum - count = sum //其余 *= /= %= 同上 } }
-
三目运算符
/** * @author hgw * @date 2022年01月15日13:46 **/ public class Test5 { public static void main(String[] args) { String userName = "admin"; String password = "root"; System.out.println("三目运算:"); if (userName.equals("admin") && password.equals("root")) { System.out.println("用户名密码正确!"); } System.out.println("========"); //三目运算符可以减少如上面的判断逻辑编写 // 数据类型 接收变量 = 关系判断 ? 符合判断条件(true):不符合判断条件 System.out.println(userName =="admin" && password =="root" ? "用户名密码正确" : "用户名或者密码有误!"); } }
-
位运算符
Java 提供了 4 种位运算符
位与运算符(bitwise and operator):&
位或运算符(bitwise inclusive or operator):|
位异或运算符(bitwise exclusive or operator):^
位取反运算符(bitwise invert operator):~这些运算符是在二进制补码上进行操作
示例
public static void main(String[] args) { byte a = 15; byte b = -15; System.out.println(a & b); System.out.println(a | b); System.out.println(a ^ b); System.out.println(~a); System.out.println(~b); }
-
运算符的优先级
在运算的时候注意下优先级