码迷,mamicode.com
首页 > 编程语言 > 详细

Java复习(3)运算符和表达式

时间:2019-01-02 01:27:59      阅读:266      评论:0      收藏:0      [点我收藏+]

标签:强制类型转换   强制   条件   提升   优先级   ati   world   sys   hello   

运算符主要是指进行特定操作的符号。如:+。
表达式是指用运算符连接起来的式子叫做表达式。如:20+5,a+b。
Java世界中运算符主要分为以下几类:算术运算符、赋值运算符、比较运算符、逻辑运算符和三元运算符。
一、 算术运算符
加(+):四则运算的加法
减(-):四则运算的剑法
乘(*):四则运算的乘法
除(/):四则运算的除法
取模(%):常说的求余数
注意事项:

  1. 一旦运算当中有不同类型的数据,那么结果将会是数据类型范围大的那种。
  2. 只有对于整数的除法来说,取模运算才有余数的意义。
  3. 在进行运算时,首先计算得到表达式的结果,然后在进行后续操作。
  4. 四则运算的加号对于char类型来说,在计算之前,char类型会被提升为int类型,然后在进行计算。
  5. 对于字符串String类型来说,加号代表字符串连接操作。并且任何数据类型和字符串进行连接操作,结果都会变成字符串。
    可以看一下代码示例:

    public class TestOperator {
    public static void main(String[] args){
        //两个常量之间的数学运算
        System.out.println(20+30);
        //两个变量之间的数学运算
        int a = 20;
        int b = 5;
        System.out.println(a-b);
        //并且变量和常量之间可以混合使用
        System.out.println(a*10);
    
        int x = 10;
        int y = 3;
        //因为x和y都是整数,除数的结果也是整数。所以结果会进行截断。
        int result1 = x/y;
        System.out.println(result1);
    
        int result2 = x%y;
        System.out.println(result2);
        //浮点数也可以进行运算
        double result3 = x + 2.5;
        System.out.println(result3);
    }
    }

    算术运算符还有两种特殊的运算符,就是自增运算符(++)、自减运算符(--)。
    基本含义:
    自增运算符让变量的值增加1,自减运算符是让变量的值减1。
    使用格式:
    写在变量名称前,或者写在变量名称之后。如:++num或num++。
    使用方式:

  6. 单独使用:不和其他任何操作混合,自己独立称为一个步骤。
  7. 混合使用: 和其他操作混合,例如与赋值混合,或者与打印操作混合等。
    两种使用方式区别:
  8. 在单独使用的时候,前++和后++没有任何区别。也就是说++num和num++结果是完全一样的。
  9. 在混合使用的时候,有重大区别:
    A. 如果是前++,那么变量马上加1,然后拿着结果进行使用。可以称作,先加后用。
    B. 如果是后++,那么首先使用变量本来的数值,然后在让变量加1,可以称作,先用后加。
    注意事项:
    只有变量才能使用自增、自减运算符,常量不可用。
    请看以下示例:

    public class TestPlus {
    public static void main(String[] args) {
        //字符串类型的变量基本使用
        //数据类型 变量名称 = 数据值;
        String str1 = "Hello";
        System.out.println(str1);
        System.out.println("Hello" + "World");
    
        String str2 = "Java";
        System.out.println(str2 + 20);
    
        //优先级问题
        System.out.println(str2 + 20 + 30);
    
        //自增自减
        int num1 = 10;
        System.out.println(num1);
        ++num1;//单独使用,前++
        System.out.println(num1);
        num1++;//单独使用,后++
        System.out.println(num1);
    
        int num2 = 20;
        //混合使用,前++,变量马上变为21,然后打印输出
        System.out.println(++num2);
        System.out.println(num2);
    
        int num3 = 30;
        //混合使用,后++,先使用变量原值30,打印输出,然后变量加1,变为31.
        System.out.println(num3++);
        System.out.println(num3);
    
        int num4 = 40;
        //混合使用,前--,变量马上变为39,然后赋值result1
        int result1 = --num4;
        System.out.println(result1);
        System.out.println(num4);
    
        int num5 =50;
        //混合使用,后--,先使用变量原值50,赋值result2,然后变量减1,变为49.
        int result2 = num5--;
        System.out.println(result2);
        System.out.println(num5);
    
        int x = 10;
        int y = 20;
        int result3 = ++x + y--;
        System.out.println(result3);
        System.out.println(x);
        System.out.println(y);
    }
    }

    二、 赋值运算符
    赋值运算符分为两种:
    一是基本赋值运算符:就是一个等号“=”,代表将右侧的数据交给左侧的变量。
    二是复合赋值运算符:
    +=: 例如 a += 1 相当于 a = a + 1
    -=: 例如 b -= 4 相当于 b = b - 4
    =: 例如 c = 5 相当于 c = c * 5
    /=: 例如 d /= 6 相当于 d = d / 6
    %=: 例如 e %= 7 相当于 e = e % 7
    注意事项:

  10. 只有变量才能使用赋值运算符,常量不能进行赋值。
  11. 复合赋值运算符其中隐含了一个强制类型转换。
    请看示例:

    public class TestEqual{
    public static void main(String[] args) {
        int a = 10;
        a += 5;
        System.out.println(a);
    
        int x = 10;
        x %= 3;
        System.out.println(x);
    
        byte num = 30;
        //num += 5 相当于 num = num +5;
        //也就是byte = byte + int;
        //右边表达式会先把byte自动转换称为int,最后进行强制转换成byte.
        //所以复合赋值运算符帮我们做了一个强制类型转换
        num += 5;
        System.out.println(num);
    }
    }

    三、 比较运算符
    == 比较符号两边数据是否相等,相等结果就是true。
    < 比较符号左边的数据是否小于右边的数据,如果小于,结果就是true。

    比较符号左边的数据是否大于右边的数据,如果大于,结果就是true。
    <= 比较符号左边的数据是否小于等于右边的数据,如果小于等于,结果就是true
    = 比较符号左边的数据是否大于等于右边的数据,如果大于等于,结果就是true。
    != 比较符号两边数据是否相等,不相等结果就是true。

注意事项:

  1. 比较运算符的结果一定是一个boolean值,成立就是true,不成立就是false。
  2. 如果进行多次判断,不能连着写。
    public class TestCompare {
    public static void main(String[] args) {
        System.out.println(10>5);
        iint num1 = 10;
        int num2 = 15;
        System.out.println(num1 < num2);
        System.out.println(num1 >= 30);
        System.out.println(num2 <= 50);
        System.out.println(num2 <= 15);
        System.out.println(num2 == 15);
        System.out.println(num1 != 15);
        //java不支持连着进行比较,可以使用下节的逻辑比较符进行。
        //System.out.println(4 < num1 < 20);
    }
    }

    四、 逻辑运算符
    与 && 全都是true,才是true; 否则就是false
    或 || 至少一个是true, 就是true; 全都是false,才是false
    非 ! 本来是true,变成false;本来是false,变成true。

注意事项:

  1. 逻辑运算符只能用于Boolean值。
  2. 与、或需要左右各自有一个Boolean值,但是取反只要有唯一的一个Boolean值即可。
  3. 与、或两种运算符,如果有多个条件,可以连续写。
  4. 与、或具有短路效果:如果根据左边已经可以判断得到最终结果,那么右边的代码将不再执行,从而节省性能。
    五、 三元运算符
    Java中根据数据的多少可以分为:
    一元运算符: 只需要一个数据就可以进行操作的运算符。例如:取反!、自增++、自减--
    二元运算符: 需要两个数据才可以进行操作的运算符。例如:加减乘除
    三元运算符: 需要三个数据才可以进行操作的运算符。

格式: 数据类型 变量名称 = 条件判断 ? 表达式A : 表达式B
流程:
首先判断条件是否成立:
如果成立为true,那么将表达式A的值赋给左侧的变量
如果不成立为false,那么将表达式B的值赋给左侧的变量

注意事项:

  1. 必须同时保证表达式A和表达式B都符合左侧数据类型的要求。
  2. 三元运算符的结果必须被使用。

    public class TestThreeVar {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int max;
        //判断a>b是否成立,如果成立将a的值赋给max,如果不成立将b的值赋给max.
        max = a > b ? a : b;
        System.out.println(max);
    
        //两个表达式的值必须同时符合左侧数据类型的要求。
        //int result = 3 > 4 ? 2.4 : true;
    
        //并且三元表达式不能直接使用
        //a > b ? a : b 
    }
    }

Java复习(3)运算符和表达式

标签:强制类型转换   强制   条件   提升   优先级   ati   world   sys   hello   

原文地址:http://blog.51cto.com/534915/2337634

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!