
本文共 2697 字,大约阅读时间需要 8 分钟。
在Java学习中,有大概以下几种运算符:
基础运算符
基础运算符包括以下几种:
+(加法) -(减法) *(乘法) /(除法) %(取余)
代码演示: System.out.println(10 + 20); //30 System.out.println(10 - 20); //-10 System.out.println(10 * 20); //200 System.out.println(10 / 3); // 整数和整数计算的结果必须是整数 3 System.out.println(10 % 3); // 1 System.out.println(7 % 10); // 7 System.out.println(13 % 5); // 3在Java中,整数运算的结果还是整数。
除法和取余:
相当于小学除法运算,在Java中,除法得到的结果相当于小学除法中的商,而取余得到的是除法运算的余数
字符的“+”操作
每个字符的底层其实就是一个数字,当字符进行加法运算的时候,结果就会变成一个数字。
除汉字之外,其他的字符的底层的数字都可以参考ASCII码表。
System.out.println('a' + 1); //98 'a' --> 97System.out.println('A' + 1); //66 'A' --> 65System.out.println('0' + 1); //49 '0' --> 48 System.out.println('我'+ 1); //25106 '我'--> 25105
字符串的“+”操作
字符串中出现加操作的时候就不再是加法运算,而是具有了拼接效果,字符串和任意类型连接都会变成一个更大的字符串。
System.out.println("黑马" + 66 + 6); //"黑马666"System.out.println(99 + 1 + "黑马"); //"100黑马"System.out.println("黑马" + (66 + 6)); //"黑马72"// 10+20=30System.out.println(10 + "+" + 20 + "=" + 30); // 10+20=30
如果数字相加在字符串前面,则先进行数字的加法运算,在进行字符串的连接,如果数字相加在字符串的后面,在进行的是字符串的连接操作【有括号先执行括号的内容】
赋值运算符
= += -= *= /= %=
a += 20; //相当于 a = a + 20;
a -= 20; //相当于 a = a - 20;
a *= 20; //相当于 a = a * 20;
a /= 20; //相当于 a = a / 20;
a %= 20; //相当于 a = a % 20;
自增自减运算符
++(给变量自身加一) --(给变量自身减一)
++前置:
++a; 先加一,后运算 后置++: a++; 先运算,后加一
int a = 10;//先把a的值赋值给b,然后a自身再加一int b = a++;System.out.println(a); //11System.out.println(b); //10 int a = 10;//先让a自身加一,然后再把a的值赋值给bint b = ++a;System.out.println(a); //11System.out.println(b); //11
关系运算符
> < == != >= <=
关系运算符的结果一定是boolean类型。 =是赋值 ==是判断相等 ,千万不要把 == 写成 =
逻辑运算符
& :与 左右两端都是true,结果才是true,否则是false
| :或 左右两端都是false,结果才是false,否则是true^ :异或 两边相同为false,两边不同为true! :非 取反
int a = 10;int b = 20;//a++是后置,所以先运算后加一 10>10 false//++b是前置,所以先加一后运算 21>20 trueSystem.out.println(a++>10 & ++b>20); // false&true --> false //在执行这行之前a已经是11了,11>10 true//在执行这行之前b已经是21了,21>21 falseSystem.out.println(a++>10 | b++>21); // true|false --> true System.out.println(true ^ true); //falseSystem.out.println(false ^ true); //trueSystem.out.println(true ^ false); //trueSystem.out.println(false ^ false); //false //!取反System.out.println(!(a>20)); //trueSystem.out.println(!!(a>20)); //false
逻辑中断
&& :短路与
如果左边结果是false,右边就不会执行了。 || :短路或 如果左边结果是true,右边就不会执行了。
int c = 10;int d = 20;//c++后置,10>10 false c变成11 右边不执行System.out.println(c++>10 && ++d>20); //false//++d前置,先变成21,21>21 false 11>10 true System.out.println(++d>21 || c++>10); //trueSystem.out.println(c); //12System.out.println(d); //21
三元运算符
格式:
数据类型 变量名 = 关系表达式 ? 表达式1 : 表达式2; 执行原理: 如果关系表达式是true,就把表达式1赋值给变量 如果关系表达式是false,就把表达式2赋值给变量
//求两个数字的较小值int a = 10;int b = 20;int c = a > b ? b : a;System.out.println(c); //10
发表评论
最新留言
关于作者
