文章目录
- 赋值运算符
- 算术运算符
- 自增运算符
- 自减运算符
- 比较(关系)运算符
- 逻辑运算符
- 逻辑运算符——快速运算(短路运算)
- 复合赋值运算符
- 条件运算符
- 字符串连接运算符
- 三元运算符
- 总结
赋值运算符
• 格式:变量名=表达式;
• 左边:变量
• 右边:
常量:a = 10;
变量:b = a;
方法:b = in.nextInt();
计算结果: c = a+b;
• 注意:
(1)左边的变量需要定义;
(2)右变的类型要与左边一致或兼容
算术运算符
• +、-、*、/、%
分别表示加、减、乘、除、求余
12/8 的结果是1,而不是1.5【整数运算的结果还是整数】
自增运算符
x++
或者++x
(x是数字类型变量)
作用:x= x+1; ,与其他运算符一起使用
y = x++;
相当于y = x; x = x+1;
y = ++x;
相当于x = x+1; y = x;
记住:加加在前先加加
自减运算符
x--
或--x
(x是数字类型变量)
作用:x = x-1; ,与其他运算符一起使用
y = x--;
相当于y = x; x = x-1;
y = --x;
相当于x = x-1; y = x;
记住:减减在前先减减
比较(关系)运算符
对两个值进行比较,返回值为布尔类型
关系运算符有:>、>=、<、<=、==、!=
格式:exp1 X ex2
exp1 和 exp2是操作数,可以是表达式
X表示其中的一种关系运算符
如果exp1 和 exp2具有"X"关系,结果为true,否则结果为false
例如:5>3,结果为true,4!=6结果为true
逻辑运算符
• 操作数:布尔类型
• 返回值:布尔类型
• 逻辑运算符有:
&& 和 &
:逻辑与,两个操作数都为true,结果为true
|| 和 |
:逻辑或,两个操作数都为false,结果为false
!
:逻辑非,操作数为false,结果为true,操作数为true,结果为false
^
:逻辑异或,如果两个操作数不同,结果为true,如果两个操作数相同,结果为false
逻辑运算符——快速运算(短路运算)
A && B:如果A为false,则B不执行
例如:(a>b) && (a>(b- -)) 假设:a=5; b=6;
因为a>b为false,所以a>(b- -)不用判断,b- -不执行
A || B:如果A为true,则B不执行
& 和 | 不具有该特性
结论:“&&” 和 "||"是快速运算符,但是不能保证后面的表达式执行
复合赋值运算符
赋值运算符与其他运算符结合
格式:a X= b ;
X 表示其他的运算符,可以是各种运算符。
相当于:a = aXb ;
例如:a+=3; 表示 a=a+3;
条件运算符
格式:op1?op2:op3;
op1:结果应该为布尔类型
如果op1为true,最终结果为op2
如果op1为false,最终结果为op3
• 求两个数的最大值
int a = in.nextInt();
int b = in.nextInt();
int c = a>b?a:b;
字符串连接运算符
System.out.println("byte类型:"+b);
System.out.println("short类型:"+s);
System.out.println("int类型:"+i);
System.out.println("long类型:"+l);
System.out.println("float类型:"+f);
System.out.println("double类型:"+d2);
System.out.println("char类型:"+c);
System.out.println("boolean类型:"+bool);
• 变量定义
byte b = 3;
short s = 4;
int i=10;
long l = 11;
float f = 3f;
double d2 = 23.5;
char c = 's';
boolean bool = false;
三元运算符
在Java中,三目运算符(也称为三元运算符)是一种非常常用的运算符,它的语法结构是:
表达式1 ? 表达式2 : 表达式三
condition ? expression1 : expression2
//表达式1执行结果为true则执行表达式2
//表达式为false则执行表达式3
//结果是布尔类型,真就是2,假就是3
意思是:先判断条件 condition
是否为真,如果是,则返回 expression1
的值,否则返回 expression2
的值。
三目运算符的优点在于可以在一行代码中完成简单的判断和赋值操作,避免繁琐的 if-else 语句。
【示例1】
下面的代码使用 if-else 语句来判断一个数的符号:
int num = -5;
String sign;
if(num < 0){
sign = "负数";
}else{
sign = "正数";
}
System.out.println(num + "是" + sign);
而使用三目运算符可以将上面的代码简化为:
int num = -5;
String sign = num < 0 ? "负数" : "正数";
System.out.println(num + "是" + sign);
这样就可以用一行代码完成同样的功能,代码更加简洁明了。
【示例2】
public static void main(String[] args) {
//表达式1?表达式2:表达式3
//表达式1执行结果为true则执行表达式2
//表达式为false则执行表达式3
int a=11,b=10,c;
c = a>b ? a : b;
System.out.println(c);
}
a和b的数据任意赋值,运行完后c一定是这两个数中的最大数
需要注意的是,三目运算符只适用于简单的判断和赋值操作,不适用于复杂的条件判断。在某些情况下,使用 if-else 语句会更加清晰和易懂。
总结
位运算: &、|、~、 >>、<<
逻辑运算:&&、|| 、!
按运算类型划分优先级
算术运算符 > 关系运算符 > 逻辑运算符 > 赋值运算符
尽量多的使用括号,括号优先级别最高,使用括号也可保证在不确定优先级的情况下,更好地控制语句的执行顺序。
注意:
1.变量 前++ :变量a自己加1,将加1后的结果赋值给b,也就是说a先计算。a和b的结果都是2。 变量 后++ :变量a先把自己的值1,赋值给变量b,此时变量b的值就是1,变量a自己再加1。a的结果是2,b 的结果是1。
2.+ 符号在遇到字符串的时候,表示连接、拼接的含义。
System.out.println(“5+5=”+5+5); //输出5+5=55
public static void main(String[] args) {
//1. = 赋值运算:赋值运算符,就是将符号右边的值,赋给左边的变量, == 关系运算
int a = 10;
int b = 20;
System.out.println(a >= b);
//2.算术运算符: + - * / % ++ --
//如果单纯+在遇到字符串的时候,表示连接、拼接,你得加小括号
System.out.println("a + b ="+(a + b));
//a-b a*b a/b a%b
int c =25;
int d = 25;
int e = 25;
System.out.println("c++ ="+(c++));//先赋值,后加1
System.out.println("++d ="+(++d));//先加1,后赋值
System.out.println("--e ="+(--e));//先减1,后赋值
//3 位运算: & | ~ >> <<
System.out.println(0x01 & 0x10); // 0x00
//4 逻辑运算:&& || !
if(a ==10 && c != 2) {
System.out.println("运算正常"); // 0x00
}
}