前言
前一篇文章中,我们讲解了java入门的一些常用的基础概念,例如关键字、字面量、变量、数据类型以及键盘录入等。接下来这篇文章我们就来讲解一下Java的一些基础算术运算符!
- 什么是运算符?
算术运算符与我们在数学中学习的计算符号一样,主要用在数学表达式中,对字面量或者变量进行操作的符号。
- 什么是表达式?
用运算符把字面量或者变量连接起来,符合Java语法的句就可以称为表达式。不同的运算符连接的表达式也是不同的。具体我们一起往下看!
我们先来看一个简单的例子:
int a = 10
int b = 20;
int c = a + b;
我们来解释一下:
+:是算术运算符;
a+b:是表达式,由于+是算术运算符,所以这个表达式就叫做算术运算符!
怎么样?是不是感觉和数学一样呢?那我们一起来接着学习下面的不同的表达式!
常用的运算符
- 算术运算符
- 自增自减运算符
- 赋值运算符
- 关系运算符
- 逻辑运算符
- 三元运算符
- 运算符优先级
算术运算符
| 符号 | 作用 |
|---|---|
| + | 加 |
| - | 减 |
| * | 乘 |
| / | 除 |
| % | 取余 |
我们来看一下案例:
public class Add {
public static void main(String[] args) {
int a = 20;
int b = 10;
// 加法
int c = a + b;
System.out.println("a + b = " + c); // 30
// 减法
int d = a - b;
System.out.println("a + b = " + d); // 10
// 乘法
int e = a * b;
System.out.println("a * b = " + e); // 200
// 除法
int f = a / b;
System.out.println("a / b = " + f); // 2
// 取余
int g = a % b;
System.out.println("a % b = " + g); // 0
}
}
以上是整数参与计算,我们再来看一下带有小数的运算:
我们可以发现为什么两个都是10除以3,一个结果是3,一个是3.3333333333333335呢?
这个时候我们可以得到一个结论:整数参与计算,结果只能得到整数。而小数参与计算,结果有可能就不精确了,如果我们要精确计算怎么办呢?别急,我们后面就会学到啦!
下面我们再来说一下取余,什么是取余呢?其实呀就是取他的余数嘛!我们来看一段代码:
System.out.println(10 % 2); // 0
System.out.println(10 % 3); // 1
是什么意思呢?我们来了解一下。10/2=5余0,所以取余数0。10/3=3余1,所以取得结果就是1.这么说是不是就能理解以上的基本算术运算符了呢?
那我们接着看下面的自增自减运算符
自增自减运算符
| 符号 | 作用 | 说明 |
|---|---|---|
| ++ | 加 | 变量的值加1 |
| -- | 减 | 变量的值减1 |
注意:++和--既可以放在变量的前面,也可以放在后面
单独使用
我们来看一段代码:
int a = 10;
a++;
System.out.println(a); // 11
把++放在后面是什么意思呢?就是表示先把10赋值给a,然后在加1,就得到11.
我们再来看这段代码:
int a = 10;
++a;
System.out.println(a); // 11
这又是什么意思呢?其实也是一样的呢,把变量a的值加1。
这里我们可以得到一个结论:无论是放在变量的前边还是后边,只要是单独写一行,那么结果都是一样的。
参与计算
我们再来说一下参与计算的场景:如果自增自减参与计算,那么先加加和后加加结果就是不一样了。我们接着往下看:
a++:先用后加
int a = 10;
int b = a++;
System.out.println(b); // 10
++a:先加后用
int a = 10;
int b = ++a;
System.out.println(b); // 11
是不是有点疑惑呢?没关系我们来看一段案例:
int x = 10;
// 后++:先用后加
// 先把x变量的值拿出来用,赋值给y,然后再进行自增
// 赋值给y的值是自增前的
int y = x++; // x = 11,y = 10
// 先++:先加后用
// 先把x进行自增,然后把自增后的结果赋值给左边的变量
// 先把x自增变成12,然后在把自增之后的12赋值给z
int z = ++x; // x = 12,z = 12
System.out.println("x:" + x); // 12
System.out.println("y:" + y); // 10
System.out.println("z:" + z); // 12
怎么样,到这里是不是清楚多了呢,那我们接着讲赋值运算符吧!
赋值运算符
| 符号 | 作用 | 说明 |
|---|---|---|
| = | 赋值 | int a=10;将10赋值给a |
| += | 加后赋值 | a+=b,将a+b的值给a |
| -= | 减后赋值 | a-=b,将a-b的值给a |
| *= | 乘后赋值 | a*=b,将a*b的值给a |
| /= | 除后赋值 | a/=b,将a/b的商给a |
| %= | 取余后赋值 | a%=b,将ab的余数给a |
这么多是什么意思呢?不急,我们来实操一下!
- +=符号:将左边和右边进行相加,然后在把结果赋值给左边的变量
int a = 10;
int b = 20;
// 先a+b等于30,再把结果赋值给左边的变量a
// 等同于a = a + b;
a += b;
System.out.println(a); // 30
以下几个也是和+=同理,所以我们只需要理解一个就都会啦!
下面我们来看一下关系运算符:
关系运算符
什么是关系运算符呢?
关系运算符也叫做比较运算符,其实就是拿左边的变量和右边的变量进行判断
| 符号 | 说明 |
|---|---|
| '==' | a==b,判断a和b的值是否相等,成立为true,不成立为false |
| '!=' | a!=b,判断a和b的值是否不相等,成立为true,不成立为false |
| '>' | a!=b,判断a是否大于b,成立为true,不成立为false |
| '>=' | a>=b,判断a是否大于等于b,成立为true,不成立为false |
| '<' | a<b,判断a是否小于b,成立为true,不成立为false |
| '<=' | a<=b,判断a是否小于等于b,成立为true,不成立为false |
下面我们来实操一下吧!
// 1.== 判断左边和右边是否相等
int a = 10, b = 20, c = 10;
System.out.println(a == b); // false
System.out.println(a == c); // true
2.!= 判断左边和右边是否不相等
System.out.println(a != b); // true
System.out.println(a != c); // false
3.> 判断左边是否大于右边
System.out.println(a > b); // false
System.out.println(a > c); // false
4.>= 判断左边是否大于等于右边
System.out.println(a >= b); // false
System.out.println(a >= c); // true
5.< 判断左边是否小于右边
System.out.println(a < b); // true
System.out.println(a < c); // false
6.<= 判断左边是否小于等于右边
System.out.println(a <= b); // true
System.out.println(a <= c); // true
注意事项:关系运算符的结果都是boolean类型的,要么是true,要么是false。千万不要把"=="写成了"=",因为"=="是判断,而"="是赋值,所以需要注意啦!
逻辑运算符
什么是逻辑运算符呢?
我们在数学当中是这样的,一个数x,大于5,小于15,可以表示为:5<x<15是吧?
但是我们在Java中是这样表示的:需要把上面的式子先进行拆解,在进行合并表达。什么意思呢?我们一起来看,把上面的式子拆解为x>5和x<15,合并为:x>5&x<15。
| 符号 | 作用 | 说明 |
|---|---|---|
| '&' | 逻辑与(且) | 并且,两边都为真,结果才为真 |
| 'I' | 逻辑或 | 或者,两边都为假,结果才为假 |
| '^' | 逻辑异或 | 相同为false,不同为true |
| '!' | 逻辑非 | 取反 |
我们一起来实操一下看看有什么作用吧!
// 逻辑运算符
// 1.逻辑 & 并且:两边都为真,结果才为真。只要有一个为假,结果都是假。
System.out.println(true & true); // true
System.out.println(false & false); // false
System.out.println(true & false); // false
System.out.println(false & true); // false
// 2.逻辑 | 或者:两边都为假,结果才为假。只要有一个为真,结果都是真
System.out.println(true | true); // true
System.out.println(false | false); // false
System.out.println(true | false); // true
System.out.println(false | true); // true
// 3.逻辑 ^ 异或:两个都相同为false,不同为true
System.out.println(true ^ true); // false
System.out.println(false ^ false); // false
System.out.println(true ^ false); // true
System.out.println(false ^ true); // true
// 4.逻辑 ! 非:取法
System.out.println(!false); // true
System.out.println(!true); // false
到这里是不是就能渐渐理解了呢?那我们接下来提高一下难度学习三元运算符吧!
三元运算符
- 三元运算符格式:关系运算符?表达式1:表达式2;
那么运行顺序是什么呢? 其实呀是先运行关系表达式,如果关系表达式的结果为true,就执行表达式1语句块,如果为false,那么就会执行表达式2。我们来看一个例子:
// 需求:使用三元运算符,获取两个数的较大值。
// 1.定义两个变量
int number1 = 10;
int number2 = 20;
// 2.使用三元运算符获取两个整数的较大值,整个三元运算符的结果要被使用
int a = number1 > number2 ? number1 : number2;
System.out.println(a);
运行后会得到结果为20,那就说明a不大于b,所以取表达式2的值
我们再来看一个案例:
// 需求:动物园有两只老虎,分别通过键盘录入获得他们的体重。
// 请用程序来判断这两只老虎的体重是否相同。
// 1.通过键盘输入两只老虎的体重
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一只老虎体重:");
int tiger1 = sc.nextInt();
System.out.println("请输入第二只老虎体重");
int tiger2 = sc.nextInt();
// 2.比较
String weight = tiger1 == tiger2 ? "相同" : "不相同";
// 3.打印结果
System.out.println(weight);
怎么样,是不是很简单呢?我们对三元运算符做个小结吧:
- 首先计算关系表达式的值。
- 如果为true,表达式1的值就是运行结果。
- 如果为false,表达式2的值就是运行结果。
六种运算符已经学习完毕啦,我们是不是有一些算术运算符里面有加、减、乘、除呢?那我们应该先执行哪部分呢?不着急,我们接着学习运算符的优先级!
运算符优先级
我们先来看个例子:
int a = 10;
int b = 20;
int c = 50;
System.out.println(a + b * c);
在这个案例中,我们出现了加法,乘法,那么我们应该先算谁呢?其实呀也是和小学一样先乘除后加减。那我如果要先算a+b怎么办呢?其实给他加个括号就好啦!
System.out.println((a + b) * c);
我们来看一下运算符的优先级:
以上就是常用的运算符知识点啦,有什么不懂的可以评论在评论区,都会一一解答哟,我们下期再见!!!
==最后非常感谢您的阅读,也希望能得到您的反馈 ==