java语言支持如下运算符:
建议多使用()
算术运算符:
//二元运算符 1. 加:+ 2. 减:- 3. 乘:* 4. 除:/ 5. (取余)模:% 例如: int a = 5; int b = 2; int c = a%b;//c = 1,因为5/2=2余1 //一元运算符 6. 自增:++ 7. 自减:--
赋值运算符:
1. = 例如:int a =10;(把10赋给a)
关系运算符:
1. 大于> 2. 小于< 3. 小于等于<= 4. 大于大于>= 5. 等于== 6. 不等于!= 7. instanceof
逻辑运算符:
1. 与:&&(and) 2. 或:||(or) 3. 非:!(取反)
位运算符:(与计算机操作有关,二进制)
1. 与:& 2. 或:| 3. 亦或:^ 4. 非:~ 5. 右移:>> 6. 左移:<< 7. >>>
条件运算符:(更便捷)
1. ? 2. :
扩展赋值运算符:(更便捷)
1. += 2. -+ 3. *= 4. /=
代码实例
小知识点:ctrl + D :复制当前行到下一行
算术运算符
public static void main( string[]args) { //二元运算符 //ctrl +D:复制当前行到下一行 int a = 10; int b = 20; int c = 25; int d = 25; int e =21; system.out.println(e%a);//(取余)输出1,原理:21/10=2....1 system.out.println(a+b);//(加)输出30 System.out.println(a-b);//(减)输出-10 system.out.println(a*b);//(乘)输出200 system.out.print1n(a/(double)b);//(除)输出0.5 long a = 123123123123123L; int b = 123; short c = 10; byte d = 8; System.out.println(a+b+c+d); //Long类型 System.out.println(b+c+d); //int类型 System.out.println(c+d);l//int类型 /*cast 转换;如果运算中有Long类型那么结果为Long类型,如果运算中有double类型那么结果为double类型,如果没有Long和double类型,那么都为int类型,无论是否含有int类型*/ }
public static void main(string[]args) { //++自增 --自减 一元运算符 int a = 3; int b = a++;//执行完这行代码后,先给b赋值,再自增 int c = ++a; //执行完这行代码前,先自增,再给b赋值 System.out. print1n(a);//输出3 System.out.println(b);//输出3 System.out.println(c);//输出5 //幂运算 2^3 = 2*2*2 = 8。需要使用Math类 //很多运算,我们需要使用工具类来操作 double pow = Math.pow(2,3); System.out.println(pow);//输出8.0 }
关系运算符
public class Demoe3 { public static void main(String[]args) { //关系运算符返回的结果:正确true,错误false 是布尔值 //跟if经常使用 int a = 10; int b = 20; system.out.println(a>b);//输出false system.out.println(a<b);//输出true system.out.print1n(a==b);//输出false System.out.println(a!=b);//输出true } }
逻辑运算符
public static void main(String[]args) { //&&与(and) ||或(or) !非(取反) boolean a = true; boolean b = false; System.out.print1n("a&&b:" +( a&&b));//输出a&&b:false(逻辑与运算:两个变量都为真,结果才为true) System.out.print1n("a||b:" +(a||b));//输出a||b:true(逻辑或运算:两个变量有一个为真,则结果才为true) System.out.print1n("!(a&&b):" + !(a&&b));//输出!(a&&b):true(如果是真,则变为假,如果是假则变为真) //短路运算 int c = 5; boolean d = (c<4)&&(c++<4); System.out.println(d);//输出false System.out.println(c);//输出5,因为在(c<4)判断时,判断为假,所以直接结束该代码的执行,不做执行(c++<4)因此c依旧是5 }
位运算
public static void main(String[]args) { /* A = 0011 1100 B = 0000 1101 A&B = 0000 1100 上面和下面一一比较如果都为1则为1,否则都为0 A/B = 0011 1101 上面和下面一一比较如果都为0则为0,否则有一个1都为1 A^B = 0011 0001 上面和下面一一比较如果相同为0,不相同为1 ~B = 1111 0010 如果为0则为1,反之为0 面试题:2*8怎么做才快 2*8=16 需要用到左移<<,右移>> */ System.out.println(2<<3);//输出16,代表2的1向左移动3位 /* 左移<< *2 右移>> /2 2<<3 = 2 *2 *2 *2 = 16//就是2后面再*3个2 二进制--- 数值 0000 0000---0 0000 0001---1 0000 0010---2 0000 0011---3 0000 0100---4 0000 1000---8 0001 0000---16 */ }
三元运算符和扩展赋值运算符
扩展赋值运算符
public class Demo07 { public static void main(String[] args) { //扩展赋值运算符 int a = 10; int b = 20; a+=b; //a = a+b a-=b; //a = a-b system.out.println(a);//输出:30 //拓展 //字符串连接符+, string System.out.println(""+a+b);//输出1020,因为string在运算前面,所以导致后面运算也变成了字符串连接 System.out.print1n(a+b+"");//输出30,因为string在运算后面,所以依旧先运算后加字符串 }
三元运算符
//三元运算符 public class Demoe8 { public static void main(String[] args) { //x ? y : z //如果x==true,则结果为y,否则结果为z int score = 50; String type = score < 60 ? "不及格" : "及格"; //后期与if关系很大 System.out.println(type);//输出不及格 }