大家好,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员。本篇文章通过我和三妹对话的形式来谈一谈“Java 中的操作符”。
教妹学 Java,没见过这么有趣的标题吧?“语不惊人死不休”,没错,本篇文章的标题就是这么酷炫,接受不了的同学就别点进来看了,所谓好奇心害死猫;能够接受的同学我只能说你赚到了,你不仅能在阅读的过程中感受到思维的乐趣,还真的能学习到知识。下面就由我来介绍一下故事的背景吧。
我有一个漂亮如花的妹妹(见上图),她叫什么呢?我想聪明的读者朋友们都能猜得出:沉默王三,没错,年方三六。父母正考虑让她向我学习,做一名正儿八经的 Java 程序员。我期初是想反抗的,因为程序员这行业容易掉头发。但家命难为啊,与其反抗,不如做点更积极的事情,写点有趣的文章,教妹妹如何更快地掌握 Java 这门编程语言。毕竟程序员还算得上高薪(都是拿命换的啊)。
(铺垫结束,正文开始)
“二哥,今天我们来学习‘操作符’,对吧?比如说 +,-,*,/”
“是的,是的。操作符在 Java 中占据着重要的位置,用于程序的执行。除了常见的加减乘除,还有许多其他类型的操作符,我画了一副图,三妹你可以先看一下。”
“是不是还有很多没见过的,不着急啊,三妹,二哥来一一解释下。其中一些在实战中不常用的,暂且略过,免得增加你学习的压力。”
01、一元运算符
一元运算符要求只有一个操作数,我们来看例子。
public class UnaryOperator1 {
public static void main(String[] args) {
int x = 10;
System.out.println(x++);//10 (11)
System.out.println(++x);//12
System.out.println(x--);//12 (11)
System.out.println(--x);//10
}
}
x++ 和 ++x 的主要区别是:x++ 返回原来的值(所以输出 10,后自增为 11),++x 返回加 1 后的值(所以直接输出 12)。
x-- 和 --x 的区别于 x++ 和 ++x 的区别类似。
02、算数运算符
算术运算符就理解起来就很简单了,就是加减乘除(余),这里就不再过多解释,来看一个例子吧。
public class ArithmeticOperator {
public static void main(String[] args) {
int a = 10;
int b = 5;
System.out.println(a + b);//15
System.out.println(a - b);//5
System.out.println(a * b);//50
System.out.println(a / b);//2
System.out.println(a % b);//0
}
}
% 就是取余,除法运算后的余数。
03、位运算符
1)按位左移运算符,说起来比较难理解,我们直接来看例子,一看就懂。
public class LeftShiftOperator {
public static void main(String[] args) {
System.out.println(10<<2);//10*2^2=10*4=40
System.out.println(10<<3);//10*2^3=10*8=80
System.out.println(20<<2);//20*2^2=20*4=80
System.out.println(15<<4);//15*2^4=15*16=240
}
}
10<<2
等于 10 乘以 2 的 2 次方;10<<3
等于 10 乘以 2 的 3 次方。
2)按位右移运算符。
public class RightShiftOperator {
public static void main(String[] args) {
System.out.println(10>>2);//10/2^2=10/4=2
System.out.println(20>>2);//20/2^2=20/4=5
System.out.println(20>>3);//20/2^3=20/8=2
}
}
10>>2
等于 10 除以 2 的 2 次方;20>>2
等于 20 除以 2 的 2 次方。
04、逻辑运算符
&& 多个条件中只要有一个为 false 结果就为 false。|| 多个条件只要有一个为 true 结果就为 true。
public class LogicalOperator {
public static void main(String[] args) {
int a=10;
int b=5;
int c=20;
System.out.println(a<b&&a<c);//false && true = false
System.out.println(a>b||a<c);//true || true = true
}
}
对应的还有 & 和 |,& 不管第一个条件为 true 还是 false,依然会检查第二个,| 也一样。示例如下:
public class LogicalOperator1 {
public static void main(String[] args) {
int a=10;
int b=5;
int c=20;
System.out.println(a<b&a<c);//false & true = false
System.out.println(a>b|a<c);//true | true = true
}
}
05、三元操作符
三元操作符用于替代 if-then-false,可以使用一行代码完成条件判断的要求。来看示例:
public class TernaryOperator {
public static void main(String[] args) {
int a=2;
int b=5;
int min=(a<b)?a:b;
System.out.println(min);
}
}
如果 ? 前面的条件为 true,则结果为 : 前的值,否则为 : 后的值。
06、赋值操作符
赋值操作符恐怕是 Java 中使用最频繁的操作符了,它就是把操作符右侧的值赋值给左侧的变量。来看示例:
public class AssignmentOperator {
public static void main(String[] args) {
int a=10;
int b=20;
a+=4;//a=a+4 (a=10+4)
b-=4;//b=b-4 (b=20-4)
System.out.println(a);
System.out.println(b);
}
}
不过在进行 short 类型的数值赋值时,需要小点心。
编译器之所以提示错误,是因为 = 右侧的算术表达式默认为 int 类型,左侧是 short 类型的时候需要进行强转。
public class AssignmentOperator1 {
public static void main(String[] args) {
short a = 10;
short b = 10;
//a+=b;//a=a+b internally so fine
a = (short)(a + b);
System.out.println(a);
}
}
“怎么样,三妹,现在是不是有点豁然开朗的感觉?”
“对对对,就这种感觉。”
07、鸣谢
本篇文章为《教妹学Java》专栏的第十一篇文章,是不是有趣得很?我相信你能感受的到,这可是全网独一份,我看到已经有人在模仿了。现在定价只需 9.9 元,9.9 元你连一杯奶茶都买不到,但却能买下二哥精心制作的专栏,据说 CSDN 已经考虑涨价了,毕竟已经卖出一百多份了。
我知道,购买专栏的同学都是冲着二哥的名声来的,毕竟二哥是 CSDN 的明星博主,哈哈。为表谢意,我再附送上个人微信(qing_gee),你有什么问题都可以来咨询。
上一篇回顾:教妹学Java(十):Unicode字符集简介
PS:本篇文章中的示例代码已经同步到码云,传送门~
原创不易,喜欢就点个赞,因为你一个小小的举动,就会让这个世界多一份美好。