3运算符

运算符
Java语言支持如下运算符:
算数运算符:+,-,,/,%,++,–
关系运算符:>,<,>=,<=,==,!=
逻辑运算符:!, &&,||
位运算符:&,|,^,~,>>,<<,>>>
赋值运算符:=
扩展赋值运算符:+=,-=,
=,/=
字符串连接运算符:+

算术运算符
二元运算符类型提升:
整数运算:
如果两个操作数有一个为long,则结果也为long
没有long时,结果为int。即使操作数全为short、byte,结果也是int
浮点运算:
如果两个操作数有一个为double,则结果为double
只有两个操作数都是float的时候,结果才为float
一元运算符(自加自减运算符):
自增和自减运算符(一元运算符)
public class Test {
public static void main(String[] args) {
int i1 = 10;
int i2 = 20;
int i = i2++;
System.out.println("i = " + i);
System.out.println("i2 = " + i2);
i = ++i2;
System.out.println("i = " + i);
System.out.println("i2 = " + i2);
i = --i1;
System.out.println("i = " + i);
System.out.println("i2 = " + i2);
i = i1–;
System.out.println("i = " + i);
System.out.println("i2 = " + i2);
}
}
输出结果
i = 20 i2 = 21
i = 22 i2 = 22
i = 9 i2 = 22
i = 9 i2 = 22
逻辑运算符
逻辑与:&&
逻辑或:||
逻辑非:!
逻辑与和逻辑或采用短路的方式。从左到右计算,如果确定值则不会再继续计算下去。
boolean c = 1 > 2 && 2 > (3 / 0); 不会抛出异常;说明没有执行3/0

例子1:
public class Test {
public static void main(String[] args) {
boolean a = true;
boolean b = false;
boolean c;
c = a & b;
System.out.println©;
c = a | b;
System.out.println©;
c = a ^ b;
System.out.println©;
c = !a;
System.out.println©;
c = a && b;
System.out.println©;
c = a || b;
System.out.println©;
}
}
输出结果:
false
true
true
false
false
true
例子2:
public class Test {
public static void main(String[] args) {
int i = 1;
int j = 2;
boolean flag1 = (i > 3) && ((i + j) > 5);
boolean flag2 = (i < 2) || ((i + j) < 6);
System.out.println("flag1: " + flag1);
System.out.println("flag2: " + flag2);
}
}
flag1: false
flag2: true
位运算符
~ 取反
& 按位与
| 按位或
^ 按位异或
<<左移运算符

右移运算符
右移一位相当于除2取商
左移一位相当于乘以2
赋值运算符与扩展赋值运算符
赋值运算符(=)
当“=”两侧数据类型不一致时,可以使用默认类型转换或使用强制类型转换原则进行处理
long l = 100; int I = (int)l;
注意:可以将整型常量直接赋值给byte,short,char等类型变量,而不需要进行强制类型转换,只要不超出其表数范围
byte b = 12; char c = 100;
byte bb = 256; // 错误 short s = -32769; // 错误
扩展赋值运算符

字符串连接符(800 900 800)
“+”运算符除了可以用于算术加法运算外,还可用于对字符串进行连接操作
int id = 900 + 800;
String s = “hello” + “world”;
“+”运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接。
int c = 12;
System.out.println(“c=” + c);
当进行打印时,无论任何类型,都自动转为字符串进行打印
System.out.println©;
表达式
表达式是符合一定语法规则的运算符和操作数的序列
str
100 + i
(a - b) * c - 4
i < 100 && i != 2
表达式的类型和值
对表达式中操作数进行运算得到的结果称为表达式的值
表达式值的数据类型即为表达式的类型
表达式的运算顺序
应按照运算符的优先级从高到底的顺序进行。
优先级相同的运算符按照事先约定的结合方向进行。

三目运算符
三目运算符,语法格式:
x ? y : z
其中x为boolean类型表达式,先计算x的值,若为true,则整个三目运算符的结果为表达式y的值,否则这个三目运算符的结果为表达式z的值。
例如:
int score = 80; int x = -100;
String type = score < 60 ? “不及格” : “及格”;
int flag = x > 0 ? 1 : (x == 0 ? 0 : -1);
System.out.println("type = " + type);
System.out.println("flag = " + flag);
debug模式(断点调试)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值