运算符
算术运算符
运算符 | 功能 | 运算符 | 功能 | 运算符 | 功能 |
---|---|---|---|---|---|
+ | 正 | / | 除 | + | 加法 |
- | 负 | % | 求余 | - | 减法 |
* | 乘 | ++ | 自加 | – | 自减 |
除了正、负运算符是一元运算外,其他算术运算符都是二元运算符,都需要有两个操作数。
这些二元运算符的运算特点是左结合性,运算顺序是从左向右进行运算,先乘除后加减,先括号,在括号外。
package operator;
public class Demo1 {
public static void main(String[] args) {
//二元运算符
//ctrl +D : 复制当前行到下一行
int a = 10 ;
int b = 20 ;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/(double)b);//有小数时,先进行强制转换
System.out.println(b%a);
System.out.println("=========");
long c = 1232134342341123L ;
int d = 123 ;
short e = 10 ;
byte f = 8 ;
System.out.println(c+d+e+f);//有Long时输出结果为Long
System.out.println(d+e+f);//int
System.out.println(e+f);//int
}
}
幂运算
package operator;
public class Demo3 {
public static void main(String[] args) {
double pow = Math.pow(3,2);//3的2次
System.out.println(pow);
}
}
赋值运算符
运算符 | 功能 |
---|---|
= | 赋值 |
赋值语句的作用 : 把某个常量或变量或表达式的值赋值给另一个变量
赋值运算符是二元运算符,需要由两个操作数组成,被赋值的变量称为左值;产生值的表达式称为右值;常数只能作为右值
赋值运算的运算特点是右结合性的,也就是说,运算的方向是从右往左进行运算的
count = 5 ;//赋值的运算方向是把5赋给count
关系运算符
关系运算的作用 : 比较两个表达式的大小,判断其比较的结果是否符合给定的条件
关系表达式的值是布尔值,要么是true,要么是false
package operator;
public class Demo2 {
public static void main(String[] args) {
//关系运算符返回的结果: 正确;错误 布尔值
int a =10 ;
int b =20 ;
System.out.println(a>b);
System.out.println(a<b);
System.out.println(a=b);
System.out.println(a!=b);
}
}
逻辑运算符
package operator;
//逻辑运算符
public class Demo3 {
public static void main(String[] args) {
// 与(and) 或(or) 非(取反)
boolean a = true ;
boolean b = false ;
System.out.println("a && b:" + (a&&b));//逻辑与运算 : 两个都为真,结果才为true
System.out.println("a || b:"+(a||b));//逻辑或运算 : 两个变量至少有一个为真,则结果为true
System.out.println("!(a&&b):"+!(a&&b));//如果是真,则变为假,如果是假则变为真
//短路运算
int c = 5 ;
boolean d = (c<4) && (c++<4) ;
System.out.println(d);
System.out.println(c);//前面为错时,后面就不再进行运算
}
}
位运算符(了解!!)
package operator;
public class Demo4 {
public static void main(String[] args) {
/*
A = 0011 1100
B = 0000 1101
---------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~B = 1111 0010
*/
System.out.println(2<<3);//16
/*
0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
......
0000 1000 8
0001 0000 16
<< 相当于 *2
>> 相当于 /2
常用于底层算法 ,效率高!
*/
}
}
条件运算符
package operator;
//三元运算符
public class Demo6 {
public static void main(String[] args) {
// x ? y : z
//如果x == true ,则结果为y , 否则结果为z
int scote = 80 ;
String type = scote<60?"不及格":"及格";
System.out.println(type);
}
}
扩展赋值运算符
package operator;
public class Demo5 {
public static void main(String[] args) {
//自加自减
int a = 10 ;
int b = 20 ;
int c = 25 ;
int d = 21 ;
a+=b ;//a = a +b
c-=d ;//a = a- b
System.out.println(a);
System.out.println(c);
}
}
package operator;
public class Demo5 {
public static void main(String[] args) {
int a = 10 ;
int b = 20 ;
//字符串连接符 + ,String
System.out.println(""+a+b);
System.out.println(a+b+"");//两种是有区别的
}
}