一、算数运算符
算数运算符:+ - / * % ++ –
public class Demo_06_算数运算符 {
public static void main(String[] args) {
int a = 5;
int b = 6;
//1.+相加
int c = a + b;
//2.-相减
int d = a - b;
//3.++ 自增
a++;//自增 a = a + 1;
System.out.println(a);
++a;
System.out.println(a);
//4.--自减
a--;//a = a - 1;
System.out.println(a);
--a;
System.out.println(a);
System.out.println("=====特殊情况====");
//++写后面先赋值再++
int c = a++;
System.out.println("a=" + a +",c=" +c);
//++写前面,先++再赋值
c = ++a;
System.out.println("a=" + a +",c=" +c);
c = a++ + a++ + a++;
System.out.println("a=" + a +",c=" +c);
System.out.println("=====取余=====");
System.out.println(5%3);
System.out.println(5%5);//判断是否能整数用取余来判断
}
}
二、逻辑运算符
-
逻辑运算符:&&(并且)、||(或者)、!(非)
-
短路与
-
如果是逻辑运算符
以boolean表达式1为 && booleanb表达式2 为例:
如果 表达式1是false,Java不会走表达式2,因为不论表达式2是true还是false,整体结果都是false,java会进行短路操作。
-
如果是位运算,没有这种说法,两个表达式都会执行
-
public class Demo_07_逻辑运算符 {
public static void main(String[] args) {
//&&必须同时满足即为true
//||满足一个即为true
int gender = 1;//1为男生
boolean b1 = (gender==1);
int age = 25;
System.out.println("是否符合招工条件:"+(gender==1&&age>20));
System.out.println();
System.out.println("====景点买票====");
int age2 = 85;
System.out.println("该游客是否满足免费入园:"+(age2<=6||age2>=80));
//短路与
System.out.println("------短路与-----");
int age = 19;
//表达式age>26为false,则整体为true,不会走第二个表达式
System.out.println(age>26 && age++<40);
System.out.println(age);
System.out.println(age>26 & age++<40);
System.out.println(age);
}
}
三、关系运算符
关系运算符:> 、 < 、>= 、 <= 、 != 、 ==
关系运算符是有结果的,结果是boolean类型的
public class Demo_11_关系运算符 {
public static void main(String[] args) {
boolean b1 = 3>5;
System.out.println(b1);
System.out.println(3>=5);
int a = 3;
int b = 3;
System.out.println("a是否大于b:"+(a>b));
System.out.println("a是否等于b:"+(a==b));
System.out.println("a是否不等于b:"+(a!=b));
//字符串类型判断用.equals("")
String sex = "男";
System.out.println("孙庆钊是个男生:" + !sex.equals("男"));
System.out.println("-----判断能够整除 判断两个数取余是否等于零-----");
a = 20;
b = 20;
System.out.println("a和b取余能不能等于零:"+(a%b==0));
}
}
四、赋值运算
赋值运算符:= += -= *= /= %=
public class Demo_09_赋值运算 {
public static void main(String[] args) {
int a = 5;
a += 5;//a = a + 5;
System.out.println(a);
a++;//a = a + 1;
System.out.println(a);
a *= 5;//a = a * 5;
System.out.println(a);
a /= 5;//a = a / 5;
System.out.println(a);
a %= 5;//a = a % 5;
System.out.println(a);
System.out.println("=============");
byte b1 = 8;
b1 += 3;
System.out.println(b1);
b1 = (byte)(b1+3);//两byte相加,先默认转成int,所以需要强制转换
System.out.println("----- +=用在字符串上 -----");
String str = "hello";
str += "world";
System.out.println(str);
}
}
五、位运算
位运算:按位做运算
- &:按位与
- 如果都是1,结果是1;否则结果都是0
- |:按位或
- 如果都是0,结果是0;否则结果是1
- ^:异或
- 如果相同,则结果为0;如果不同,结果是1
>>
:右移- 通常是/2
<<
:左移- 通常是*2
>>>
:无符号右移- 不管是正负,左侧(高位)都补0
public class Demo_08_位运算 {
public static void main(String[] args) {
int a = 5;
int b = 6;
System.out.println("按位与:" + (a&b));
System.out.println("按位或:" + (a|b));
System.out.println("按位异或:" + (a^b));
System.out.println(b>>1);//右移一位 3
System.out.println(b);//6 本身并没有发生改变
}
}
六、三元运算符
格式:boolean表达式?值1:值2
public class Demo_10_三元运算符 {
public static void main(String[] args) {
int age = 5;
System.out.println(age>10?1 :0);
}
}