从零开始学Java-运算符,这篇带你看懂!

121 阅读9分钟

前言

前一篇文章中,我们讲解了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
    }
}

以上是整数参与计算,我们再来看一下带有小数的运算:

image.png 我们可以发现为什么两个都是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);

怎么样,是不是很简单呢?我们对三元运算符做个小结吧:

  1. 首先计算关系表达式的值。
  2. 如果为true,表达式1的值就是运行结果。
  3. 如果为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);

我们来看一下运算符的优先级:

image.png

以上就是常用的运算符知识点啦,有什么不懂的可以评论在评论区,都会一一解答哟,我们下期再见!!!

==最后非常感谢您的阅读,也希望能得到您的反馈  ==