Java基础学习02- 运算符

赋值运算符

赋值运算符主要用来做赋值操作的,将数值赋给某个变量,或者将一个变量的值赋给另外一个变量。

【语法】 数据类型 变量名 = 数值/变量,表示将等号右边的值赋给等号左边,代码如下:

public class Test{
    public static void main(String[] args) {
        int num = 10;               // 将10赋给num
        String name = Gavin;        // 将Gavin赋给name
    }
}

详解:

除了 = ,其他的都是特殊的赋值运算符。 以 += 为例,如a+=b,相当于 a = a + b,首先会进行加法运算 a + b,再将运算结果赋值给变量a,所以a = 5, b = 2。

其他特殊的赋值运算符可以此类推。

基本算术运算符

使用基本算术运算符可以完成Java程序的基本数学运算,包括 +,-,*,/,%,++,--。其中+,-,*,/,%会自动完成操作数的数据类型转换,由低字节转为高字节。

基本算术运算符使用方式:

  变量A + 变量B:求出变量A和变量B的相加之和。

  变量A - 变量B:求出变量A和变量B的相减之差。

  变量A * 变量B:求出变量A和变量B的相乘之积。

  变量A / 变量B:求出变量A和变量B的相除之商(若变量A和变量B都未整型,则除不尽时只取商点整数部分,如10/3的值为3;若变量A和变量B至少有一个是浮点型,则取完整的商,如10/3.0的值为3.3333333333333335,浮点型精度问题导致最后一位为5)。

  变量A % 变量B:求助变量A和变量B相除之后的余数,也就是所说的“取余”。

-------------------------------------------------------    分割线   --------------------------------------------------------------

++、--的基本语法:变量A++,++变量A,变量A++,--变量A:

  ++: 求出变量A+1的值,等于变量A+1;

  -- : 求出变量A-1的值,等于变量A-1.

详解:

变量A++和++变量A是有区别的:变量A++表示当前操作先取出变量A的值,再进行运算++变量A表示当前操作先进行运算,再取出变量A的值

A++演示代码如下:

public class Test{
    public static void main(String[] args) {
        int num = 10;
        System.out.println(num++);
    }
}

运行结果:

num++ ,num初始值为10,num++表示需要取出当前num值,即打印结果为10.

public class Test{
    public static void main(String[] args) {
        int num = 10;
        System.out.println(num++);
        System.out.println(num);
    }
}

运行结果:

num++操作后,再次输出num值,此时已进行+1操作,即输出结果为11.

++A演示代码如下

public class Test{
    public static void main(String[] args) {
        int num = 10;
        System.out.println(++num);
    }
}

运行结果:

++num表示先进行+1运算,再取出num值打印输出,所以结果为11.

注:A-- 与 --A用法同上。

复合算术运算符

复合算术运算符可以在基本算术运算符的基础上进一步简化代码,包括+=,-=,*=,/=,%=,具体用法如下:

  变量A += 变量B:先求出变量A和变量B的相加之和,再把计算结果赋给变量A,等同于变量A = 变量A + 变量B。

  变量A - 变量B:等同于变量A = 变量A - 变量B。

  变量A * 变量B:等同于变量A = 变量A * 变量B。

  变量A / 变量B:等同于变量A = 变量A / 变量B。

  变量A % 变量B:等同于变量A = 变量A % 变量B。

代码如下:

public class Test{
    public static void main(String[] args) {
        int num1 = 10;
        int num2 = 5;
        num1 += num2;
        System.out.println(num1);
    }
}

运行结果:

关系运算符

关系运算符用来计算一个表达式是否成立,只有两种结果,即成立或者不成立,也就是前面Java基础学习01- 基本数据类型中学到的boolean类型,其值为true和false。

其中ture表示成立(真),false表示不成立(假),我们可以用boolean类型的值来表示关系运算符的运算结果。

关系运算符包括: ==,!=,>,<,>=,<=。其中>,<,>=,<=只能用作数值类型的比较; ==,!=既可以比较数值类型,也可以比较两个对象是否相等。具体用法如下:

  变量A == 变量B:变量A和变量B是否相等,相等的运算结果为ture,不相等的运算结果为false。

  变量A != 变量B:变量A和变量B是否不相等,不相等的运算结果为ture,相等的运算结果为false。

  变量A > 变量B:变量A是否大于变量B,大于的运算结果为ture,等于或者小于的运算结果为false。

  变量A < 变量B:变量A是否小于变量B,小于的运算结果为ture,大于或者等于的运算结果为false。

  变量A >= 变量B:变量A是否大于等于变量B,大于或者等于的运算结果为ture,小于的运算结果为false。

  变量A <= 变量B:变量A是否小于等于变量B,小于或者等于的运算结果为ture,大于的运算结果为false。

代码如下:

public class Test{
    public static void main(String[] args) {
        int num1 = 10;
        int num2 = 5;
        boolean result1 = num1 == num2;
        boolean result2 = num1 > num2;
        boolean result3 = num1 < num2;
        boolean result4 = num1 >= num2;
        boolean result5 = num1 <= num2;
        System.out.println(result1);
        System.out.println(result2);
        System.out.println(result3);
        System.out.println(result4);
        System.out.println(result5);
    }
}

运行结果:

 逻辑运算符

逻辑运算符只能用boolean类型的数据运算,判断boolean数据之间的逻辑关系,包括与、或、非这三种关系。

运算符有&(与)、|(或)、&&(短路与)、||(短路或)、!(非),具体用法如下:

变量A & 变量B:只有当变量A和变量B都为true,结果为true,否则为false。

变量A | 变量B:当变量A或变量B有一个为true,结果为true,否则为false。

变量A && 变量B:只有当变量A和变量B都为true,结果为true,否则为false。

变量A || 变量B:当变量A或变量B有一个为true,结果为true,否则为false。

!变量A:若变量A为true,结果为false;若变量A为false,结果为true。

 

&& 和 || 效率比 & 和 |要高

&代码如下

public class Test{
    public static void main(String[] args) {
        int num1 = 10;
        int num2 = 11;
        System.out.println((num1++==num2)&(++num1==num2));
        System.out.println(num1);
    }
}

运行结果:

详解:

①先进行num1++的运算,++在操作数之后,所以先使用操作数再进行++运算,此时的num1为10,再进行10==num2的运算,结果为false;运算完成之后的num1值为11;

②先进行++num1的运算,++在操作数之前,所以先进行++运算在使用操作数,此时结果为12,再进行12==num2的运算,结果为false;

③false & false的结果为false。

 

 &&代码如下

public class Test{
    public static void main(String[] args) {
        int num1 = 10;
        int num2 = 11;
        System.out.println((num1++==num2)&&(++num1==num2));
        System.out.println(num1);
    }
}

运行结果:

详解:

先进行num++的运算,此时的num1为10,再进行10==num2的运算,结果为false。表达式1的值为false,不管表达式2的值为ture还是false,整个运算结果都为false,这里使用短路与(&&),所以此时不会执行表达式2的代码,直接返回false,num1的值为11.

条件运算符

条件运算符也叫做三元运算符,可以完成给变量赋值操作。根据不同的条件给同一个变量赋不同的值,语法为:变量A = 条件?值1:值2,若条件成立,值1赋值给变量A;否则值2赋值给变量A。

代码如下:

public class Test{
    public static void main(String[] args) {
        String str1 = 11 > 10 ? "11 > 10 成立":"11 > 10 不成立";
        System.out.println(str1);
        String str2 = 11 < 10 ? "11 < 10 成立":"11 < 10 不成立";
        System.out.println(str2);
    }
}

运行结果:

 

位运算符

位运算符用来对二进制为进行操作,包括按位取反(~),按位与(&),按位或(|),异或(^),左移(<<),右移(>>)和无符号右移(>>>)。

位运算符只能对整数型和字符型数据进行操作。

运算符知识点先学习到这,接下来准备看看数组相关的内容了,加油!

 

posted @ 2020-05-12 15:27  Mr.Gavin  阅读(248)  评论(0编辑  收藏  举报