本章内容
算术运算符
赋值运算符
扩展运算符
关系运算符
逻辑运算符
位运算符
条件运算符
字符串连接
算术运算符(最常用的一类运算符)
-
一元运算符
算术运算符中++、--属于一元运算符,这类运算符只需要一个操作数
-
二元运算符
加(+)、减(-)、乘(*)、除(/)、取余(模)(%)(求余操作)---这些都需要两个操作数,称为二元运算符
二元运算符的运算规则
整数运算:
-
两个操作数有一个为Long,则结果也为Long
-
没有long,结果为int,即使操作数全为short、byte,结果也是int
浮点运算:
-
两个操作数有一个为double,其结果为double
-
只有两个操作数都是float类型的时候其结果才是float
-
有一个为浮点数其结果也都是浮点数
取模运算:
规则:
-
"余数"符号和左边操作数相同 如:7%3 = 1,-7 % 3 = -1, 7 % -3 = 1
实例:
/**
* TestOperator
* @author Lucifer
*/
public class TestOperatorNo1 {
public static void main(String arguments[]){
byte a = 1;
int b = 2;
//byte c = a + b; //因为有int类型的b所以不能转为byte,a+b的结果是int不能转为byte。因为占用字节大小的问题
long c = 3;
//int c2 = c + b; //也是不行的,因为有long类型的数据表述的范围比int大,表述范围较大的时候可以自由去转换数据类型
float d = 3.14F;
float f = b + c;
//float g = d + 6.2; //会报错,因为只要有一个数是double类型其算是表达式的结果就是double类型。double类型不能赋给float类型
System.out.println(-9%5);
int first = 3;
int second = first++;
System.out.println("first:" + first + '\n' + second);
first = 3;
second = ++first;
System.out.println("first:" + first + '\t' + second);
/*
注意:First++和++First的区别
++first:
先给first进行运算
在赋值给second
所以first = 3,second = 4
first++:
先给second进行赋值
在让first自增
所以second = 4,first = 4;关键要注意为什么a也是4
*/
int e = 3;
int g = e--;
System.out.println("e:" + e + '\t' + g);
e = 3;
g = --e; //--变量名或者++变量名其变量都已经发生了改变而不是单独在式子中改变。
System.out.println("e:" + e + '\t' + g);
/*
自增自减的运算符其实运算了两个值,一个是被赋值的变量的值一个是变量本身的值
*/
}
}
赋值运算符及其扩展运算符
实例:
int a = 3; //把3这个字面常量赋予变量a
int b = 4;
a += b; //相当于a = a+b; 会运算后面的结果在赋值给a
System.out.println("a=" + a + "\nb=" + b);
a *= b+3; //相当于a = a*(b+3); 会始终先运算式子右边的结果,如果右边有多个运算符则视为带了'()'
System.out.println("a=" + a + "\nb=" + b);
a = 10;
b = 15;
int c = a + b;
c /= a;
/**
* TestOperatorNo3
* @aythor Lucifer
*/
public class TestOperatorNo3 {
public static void main(String arguments[]){
int a = 10;
int b = 15;
int c = a + b;
c %= a;
System.out.println(c);
c <<= 2;
System.out.println(c);
c = 5;
c >>= 2;
System.out.println(c);
}
}