8.运算符总结
1 package JavaOperator; 2 3 public class Operator01 { 4 public static void main(String[] args) { 5 /* 6 运算符 7 1、算数运算符:+ ,— ,* , /, %(取余), ++, ——。 8 2、赋值运算符:= 9 3、关系运算符:> , <, >=, <=, ==, != 10 4、逻辑运算符:&&, ||, !。 11 5、位运算符:&, |, ^, ~, >>, <<, >>> 。 12 6、条件运算符:?, : 。 13 7、扩展赋值运算符:+=, —=, *=, /= 。 14 */ 15 16 //二元运算符 17 int a = 14; 18 int b = 64; 19 int c = 34; 20 int d = 68; 21 22 System.out.println(a+b); // 78 23 System.out.println(a-c); // -20 24 System.out.println(a*d); //952 25 System.out.println(c/d); //0 .精度问题。 26 System.out.println((double)c/d); //0.5 .强制转换解决25行的精度问 题。 27 28 //不同数据类型相加会输出什么结果? 29 long h = 20L; 30 int m = 798; 31 short o = 128; 32 byte q = -1; 33 double l = 10.0; 34 System.out.println(q+l); //输出了double类型 35 System.out.println(h+m+o+q); //输出了long类型 36 System.out.println(m+o+q); //输出了int类型 37 System.out.println(o+q); //输出了int类型 38 System.out.println(h+l); //输出了double类型 39 40 //多个数相加,有long类型,结果为long;否则为int类型。 41 //多个数相加,有double类型,结果为double;否则为int类型。 42 //double>long>int 43 44 45 } 46 }
1 package JavaOperator; 2 3 public class Operator02 { 4 public static void main(String[] args) { 5 6 //关系运算符返回的结果:ture、false (布尔值) 7 int a = 10; 8 int b = 30; 9 10 System.out.println(a>b); //f 11 System.out.println(a<b); //t 12 System.out.println(a==b); //f 13 System.out.println(a!=b); //t 14 15 //取余 % 16 int d = 22; 17 18 System.out.println(d%a); //2 成功取余2。 19 20 21 //幂运算 如何算2^3 ? 要运用math工具类运算。 22 double pow = Math.pow(2,3); 23 double pow1 = Math.pow(3,3); 24 System.out.println(pow); // 8.0 25 System.out.println(pow1); // 27.0 26 27 28 } 29 }
1 package JavaOperator; 2 3 public class Operator03 { 4 public static void main(String[] args) { 5 //自增自减 ++ -- 。一元运算符号。 6 7 //--a 8 //该计算表达式产生的值是 x - 1 9 //该表达式表达完毕之后,a的值也发生了变化 a = x - 1 10 int a = 10; 11 12 System.out.println(a); //10 13 System.out.println(--a); //9 14 System.out.println(a); //9 15 16 17 //a-- 18 // 该计算表达式产生的值是 x 19 //该表达式表达完毕之后,a的值也发生了变化 a = x - 1 20 int a1 = 10; 21 22 System.out.println(a1); //10 23 System.out.println(a1--); //10 24 System.out.println(a1); //9 25 26 27 //++a 28 // 该计算表达式产生的值是 x + 1 29 //该表达式表达完毕之后,a的值也发生了变化 a = x + 1 30 int a2 = 10; 31 32 System.out.println(a2); //10 33 System.out.println(++a2); //11 34 System.out.println(a2); //11 35 36 37 //a++ 38 // 该计算表达式产生的值是 x 39 //该表达式表达完毕之后,a的值也发生了变化 a = x + 1 40 int a3 = 10; 41 42 System.out.println(a3); //10 43 System.out.println(a3++); //10 44 System.out.println(a3); //11 45 46 47 //实战 48 int b = 10; 49 50 System.out.println(b); //10 51 52 int c = b++; 53 54 System.out.println(b); //11 55 System.out.println(c); //10 56 System.out.println(b); //11 57 58 int d = ++b; 59 60 System.out.println(d); //12 61 System.out.println(b); //12 62 63 } 64 }
1 package JavaOperator; 2 3 public class Operator04 { 4 public static void main(String[] args) { 5 //逻辑运算符 与& 或| 非! 6 7 boolean a = true; 8 boolean b = false; 9 10 System.out.println(a && b); // false。辑与运算,变量都为真,结果才为真。 11 System.out.println(a || b); // ture。逻辑或运算,变量有一真,结果直接为真。 12 System.out.println(!(a && b)); // ture。如果是真输出假,如果是假输出真。 13 14 //短路运算。 15 int c = 5; 16 boolean d = (c<4)&&(c++<4); //在&&与运算中,如果&&前面的数(c<4)为假,则不进行&&后面的数(C++<4)的运算. 17 18 System.out.println(d); // false 19 System.out.println(c); // 5 。从c输出5可以知道,c++并没有被执行,否则结果为6。证明了上面的运算出现短路。 20 21 int x = 5; 22 boolean l = (x>1)||(x-->2); 23 24 System.out.println(l); // ture 25 System.out.println(x); // 5. ||运算前的数据(x>1)为真,则结果直接为真,不再进行(x-->2)的运算,所以结果为5而不为4。 26 27 28 } 29 }
5.位运算
package JavaOperator; public class Operator05 { 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。 A^B = 0011 0001 .上下相同得0,不相同得1。 ~B = 1111 0010 .取反操作 ~A = 1100 0011 */ // <<左移 ,>>右移 System.out.println(2<<3); // 16 why? /* 表示 0000 0000 0 0000 0001 1 0000 0010 2 0000 0011 3 0000 0100 4 0000 1000 8ß 0001 0000 16 得出:2在二进制中的1左移三位得到 16 的二进制。 结论:<<意味着*2 ,>>意味着/2 。 */ System.out.println(2<<2); //8 System.out.println(80>>1); //40 } }
1 package JavaOperator; 2 3 public class Operator06 { 4 public static void main(String[] args) { 5 int a = 10; 6 int b = 20; 7 8 /* 9 a+=b; 从输出结果=30可以推出本式子表示的意思为 a = a+b 10 b-=a; b = a-b . 11 //a-=b means a = b-a. 12 //偷懒写法,在初学时不要使用。 13 14 System.out.println(a); //30 15 System.out.println(b); //-10 16 */ 17 18 //字符串链接符 19 System.out.println(a+b); //30 20 System.out.println(""+a+b); //1020 21 System.out.println(a+b+""); //30 22 //字符串在前,链接后拼接。 23 //字符串在后,前面的a+b正常计算。 24 25 26 } 27 28 }
1 package JavaOperator; 2 3 public class Operator07 { 4 public static void main(String[] args) { 5 //三元运算符 6 //偷懒算法,但是必须掌握。 7 //开发中很常见。 8 9 //x ? y :z 10 //如果x==ture,则结果为y,否则为z。 11 12 int score = 80; 13 int score1 = 54; 14 String ok = score < 60?"不及格":"及格"; 15 String ok1 = score1 < 60?"不及格":"及格"; 16 System.out.println(ok); //及格 17 System.out.println(ok1); //不及格 18 } 19 }
本文总结于:狂神说java:https://www.bilibili.com/video/BV12J41137hu?from=search&seid=13867334794067845764
浙公网安备 33010602011771号