A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 忆梦追风 中级黑马   /  2014-9-1 21:55  /  1145 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

运算符
        (1)算术运算符 +,-,*,/,%,++,--
                A:%
                        **当左边的绝对值小于右边:结果是左边
                        **当左边的绝对值等于右边或者是右边倍数的时候:结果是0
                        **当左边的绝对值大于右边:结果是余数,符号取决与左边的的符号
                        **取余的正负号取决于左边,右边忽略不记
                        **用途:任意正整数%2 结果是要么0,要么1。用于切换条件
                        
                B:++,--
                        int a = 3;
                        int b = a++;                                //当++在变量的后面,会先从变量中把值取出来,进行运算,赋值,输出
                        System.out.println(a);
                        System.out.println(b);
                        **递增,递减运算符。就是加1或者减1
                        **单独存在,放在操作数的前面或者后面,结果一样
                        **参与运算时:
                                ***放在操作数的前面,先自身加或者减1,然后再参与运算
                                ***放在操作数的后面,先参与运算,然后再自身加或者减1
                        
                C:+
                        **作为数据的符号(正号)
                        **做加法运算
                        **字符串连接符"5 + 5 =" + (5 + 5);
        (2)赋值运算符
                A:=:赋值运算符 把右边的值赋给左边
                        **举例:int x = 3; 把3赋给int类型变量x
                        int a,b,c;
                        a = b = c = 5;
                B:+=:加赋值运算符 把左边和右边的和赋给左边
                        **举例:int x = 3; x+=2;等同于 x = x + 2;
                        **问个问题 byte b = 5;
                                           b = b + 2;
                                   b += 2; b = (byte)(b + 2);
                                           System.out.println(b);会不会报错?
                        **+=运算符在给b赋值时,自动完成了强转操作。
        (3)比较运算符
                A:==,!=,>,<,>=,<=
                B:比较运算符的结果都是boolean型,也就是要么是true,要么是false。
        (4)逻辑运算符
               
                int x = 5;
        
                x > 6 & x < 10
                /*
                逻辑与运算符 &
               
                第一个条件    第二个条件     结果
                true          true                         true
                false         true           false
                true          false          false
                false         false          false

                简单记:左右两边同时为true,结果为true。
                */

                /*
                逻辑或运算符 |
               
                第一个条件    第二个条件     结果
                true          true                 true
                false         true           true
                true          false          true
                false         false          false

                简单记:左右两边只要有一个结果是true,结果为true。
                */

                /*
                逻辑异或运算符 ^
               
                第一个条件    第二个条件     结果
                true          true                         false
                false         true           true
                true          false          true
                false         false          false

                简单记:左右两边相同,结果为false。
                */

                /*
                逻辑非运算符 !
               
                !true  false
                !false true
                !!true true
                */

                /*
                短路与:

                &:左边无论什么结果,右边都执行。
                &&:左边为false,右边不执行,结果为false。

                int x = 10;
                x > 11 && x < 15
                短路或:
                |:左边无论什么结果,右边都执行。
                ||:左边为true,右边不执行,结果为true。
                */
        (5)位运算符2<<3   2 * 8 == 2 * 2^3
                <<一个整数向左移动几位就乘以2的几次幂
                >>一个整数向右移动几位就除以2的几次幂,高位是0就补0,高位是1就补1
                >>>无符号右移无论最高位的符号位是0还是1,用无符号右移后高位符号位都是补0
        (6)三元运算符
                A :(条件表达式)?表达式1:表达式2;
                        **如果条件为true,运算后的结果是表达式1;
                        **如果条件为false,运算后的结果是表达式2;
                B:条件运算符运算完之后一定有一个结果
                int x,y,z;
                x = 5;
                y = 10;
                z = x > y ? x : y;

                if(x > y) {
                        z = x;
                }else {
                        z = y;
                }

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马