首页 > 代码库 > java的运算符

java的运算符

1.运算:对常量和变量进行操作的过程称为运算。


2.运算符:对常量和变量进行操作的符号称为运算符。


3.操作数:参与运算的数据称为操作数。


4.表达式:用运算符把常量或者变量连接起来的具有java语法的语句。不同运算符连接的语句体现的是不同类型的表达式。

    例如:

            int a = 3 + 4;

    这是做了一个加法运算,+就是运算符,是算术运算符。3,4就是参与运算的操作数。3+4整体就是一个算术表达式。


5.算术运算符

技术分享

    +,-,*,/都是比较简单的操作。

    +的作用:加法,整数,字符串连接符

    除法的时候要注意:1)整数相除,只能得到整数2)要想到小数可以*1.0,将其转成double型

/**
 *  运算符:就是对常量和变量进行操作的符号。
 *  分类:算术运算符,赋值运算符,比较运算符,逻辑运算符,位运算符,三目运算符
 *  算术运算符:+,-,*,/,%,++,--
 *  注意事项:
 *      整数相除只能得到整数,如果要想得到小数,那么只需要将其中一个整数变为double型
 *      整数相除,/获取的是除法操作的商,%获取的是除法操作的商。
 */
public class OperatorDemo {
    public static void main(String[] args){
        //定义变量
        int  x = 3;//把3赋值给into类型的变量x
        int  y = 4;
        System.out.println(x+y);//加法
        System.out.println(x-y);//减法
        System.out.println(x*y);//乘法
        System.out.println(x/y);//除法
        System.out.println(x%y);//取模

    }
}
7
-1
12
0
3
/**
 *  ++,--运算符的使用
 *  作用:就是对变量进行自增或者自减
 *      单独使用:放在操作数的前面和后面效果一行,单独的对变量的进行自增或自减
 *      参与运算使用:
 *          放在操作数的前面,先自增或自减,然后再参与运算
 *          放在操作数的后面,先残云运算,再自增或自减
 *
 */
public class OperatorDemo2 {
    public static void main(String[] args){
        //定义两个变量
        int x = 3;
        int y = 4;
        //字符串的拼接
        System.out.println("x="+x);//x=3
        System.out.println("y="+y);//y=4
        System.out.println("x="+x+",y="+y);//x=3,y=4

        //单独使用
        x++;
        y--;
        System.out.println("x="+x);//x=4
        System.out.println("y="+y);//y=3
        --x;
        --y;
        System.out.println("x="+x);//x=3
        System.out.println("y="+y);//y=2

        System.out.println("*********************");

        int a = 3;
        int b = 4;
        int c = a++;
        int d = b--;
        System.out.println("a="+a);//a=4
        System.out.println("b="+b);//b=3
        System.out.println("c="+c);//c=3
        System.out.println("d="+d);//d=4

        int i = 3;
        int j =4;
        int l = ++i;
        int k = --j;
        System.out.println("i="+i);//i=4
        System.out.println("j="+j);//j=3
        System.out.println("l="+l);//l=4
        System.out.println("k="+k);//k=3


    }
}

练习题:

/**
 * 下面的程序看看就行,实际中谁敢这样写,就要呵呵了
 */
public class OperatorTest {
    public static void main(String[] args){
        int a = 10;
        int b = 10;
        int c = 10;

        a = b++;//a=10,b=11,c=10
        c = --a;//a=9,c=9,b=11
        b = ++a;//a=10,b=10,c=9
        a = c--;//a=9,c=8,b=10

        System.out.println("a="+a+",b="+b+",c="+c);

        int x = 4;
        int y = (x++)+(++x) + (x*10);
        //(x++)-->4     x=5
        //(++x)-->6     x=6
        //(x*10)-->60
        System.out.println("x="+x+",y="+y);

    }
}
/**
 * +的用法:
 *  加法
 *  正号
 *  字符串连接符
 *
 */
public class OperatorDemo3 {
    public static void main(String[] args){
        //加法
        System.out.println(3+4);
        //正号
        System.out.println(+4);
        //字符串连接符
        System.out.println(‘a‘);
        System.out.println(‘a‘+1);
        System.out.println("hello"+‘a‘+1);
        System.out.println(‘a‘+1+"hello");

    }
}
7
4
a
98
helloa1
98hello


6.  赋值运算符

    基本的赋值运算符:=

    扩展的赋值运算符:+=,-=,*=,/=,%=

/**
 *  赋值运算符:
 *      基本的赋值运算符:=
 *      扩展的赋值运算符:+=,-+,*=,/=,%=
 *          +=把左边和右边的做加法,然后赋值给左边的变量
 */
public class OperatorDemo {
    public static void main(String[] args){
        int x = 10;
        System.out.println("x="+x);

        int a,b;
        a=b=10;
        System.out.println(a);
        System.out.println(b);

        int  y = 10;
        y += 20;//y=y+20
        System.out.println(y);

    }
}



7.比较运算符

技术分享

8.逻辑运算符

技术分享

逻辑运算符用于连接布尔型表达式,在java中不可以写成3<x<6,应该写成x>3&&x<6。

/**
 *  逻辑运算符
 *      &,|,^,!
 *      &&,||
 *  特点:
 *      逻辑运算符一般用于连接Boolean类型的表达式或者值。
 *      表达式:就是用运算符把常量或者变量连接起来符合java语法的式子。
 *          算术表达式:a+b
 *          比较表达式:a==b
 *  结论:
 *      逻辑与:&   一假则假
 *      逻辑或:|   一真则真
 *      逻辑异或 ^  相同为假,不同为真
 *          举例:情侣关系  男男,女女,false;男女,女男,true。
 *      逻辑非:!   非false则true,非true则false
 *
 *  &&和&的区别?
 *      最终结果一样
 *      &&  具有短路效果,左边是false,右边不执行
 */
public class OperatorDemo {
    public static void main(String[] args){
        int a = 3;
        int b = 4;
        int c = 5;
        //逻辑与 &
        System.out.println((a>b)&(a>c));//false
        System.out.println((a>b)&(a<c));//false
        System.out.println((a<b)&(a>c));//false
        System.out.println((a<b)&(a<c));//true
        //逻辑或 |
        System.out.println((a>b)|(a>c));//false
        System.out.println((a>b)|(a<c));//true
        System.out.println((a<b)|(a>c));//true
        System.out.println((a<b)|(a<c));//true
        //逻辑异或 ^
        System.out.println((a>b)^(a>c));//false
        System.out.println((a>b)^(a<c));//true
        System.out.println((a<b)^(a>c));//true
        System.out.println((a<b)^(a<c));//false
        //逻辑非
        System.out.println(!(a>b));//true

        System.out.println((a>b)&& (a>c));//false
        System.out.println((a>b)&& (a<c));//false
        System.out.println((a<b)&& (a>c));//false
        System.out.println((a<b)&& (a<c));//true


    }
}


9.位运算符

技术分享

/**
 *  位运算符
 *      &,|,^,~
 *      <<,>>,>>>
 *  注意:
 *      要做位运算,首先要将数据转换为二进制。
 */
public class OperatorDemo {
    public static void main(String[] args){
        int a = 3;
        int b = 4;
        /**
         * 分析:因为是位运算,所以我们必须将数据换算成二进制。
         *  3的二进制是:11
         *      00000000 00000000 00000000 00000011
         *  4的二进制是:100
         *      00000000 00000000 00000000 00000100
         *  &:有0则0
         *      00000000 00000000 00000000 00000000
         *      结果是0
         *  |:有1则1
         *      00000000 00000000 00000000 00000111
         *      结果是7
         *  ^:相同为0,不同为1
         *      00000000 00000000 00000000 00000111
         *      结果是7
         *  ~按位取反,0变1,1变0
         *      11111111 11111111 11111111 11111100 -->补码
         *      11111111 11111111 11111111 11111011 -->反码
         *      10000000 00000000 00000000 00000100 -->原码
         */
        System.out.println(a & b);
        System.out.println(a | b);
        System.out.println(a ^ b);
        System.out.println(~a);
        /*
         * ^的特点:一个数据对另一个数据位异或两次,该数本身不变
         * 应用:用来进行数据的加密
         */
        int  x = 10;
        int  y = 20 ;
        System.out.println(x ^ y ^ y);//10
        System.out.println(x ^ y ^ x);//20
    }
}
/**
 *  实现两个整数变量的交换
 *
 */
public class OperatorDemo {
    public static void main(String[] args){
        int a = 3;
        int b = 4;
        System.out.println("a="+a+",b="+b);
        //实现一,使用第三变量
        int c = a;
        a = b;
        b = c;
        System.out.println("a="+a+",b="+b);
        //实现二,使用位异或实现
        //左边:a,b,a
        //右边:a,b
        a = a ^ b;
        b = a ^ b;
        a = a ^ b;
        System.out.println("a="+a+",b="+b);
        //实现三,用变量相加的方法
        a = a + b;
        b = a - b;
        a = a - b;
        System.out.println("a="+a+",b="+b);
    }
}
/**
 *  <<  左移 左边最高位丢弃,右边补齐0
 *  >>  右移 最高位是0,左边补齐0;最高位为1,左边补齐1
 *  >>> 无符号右移 无论最高位是0还是1,左边补齐0
 *
 */
public class OperatorDemo {
    public static void main(String[] args){
        /**
         * 分析:
         *      计算出3的二进制:11
         *          00000000 00000000 00000000 00000011
         *      [00]00000000 00000000 00000000 00001100
         *      --> 00000000 00000000 00000000 00001100
         *  结论:把<<左边的数据*2的移动次幂
         */
        System.out.println(3 << 2);//12
        //把>>右边的数据除以2的移动次幂
        System.out.println(24 >> 2);//24 / 2(2) =6
        System.out.println(24 >>> 2);

        System.out.println(-24 >> 2);//-6
        System.out.println(-24 >>> 2);//1073741818
    }
}



10.三目运算符

    (关系表达式)?表达式1:表达式2;

    如果关系表达式的值是true,那么运算后的结果是表达式1,如果关系表达式的值是false,那么运算后的结果是表达式2。  

/**
 *  单目运算符呢:~3
 *  双目运算符:3 + 4
 *  三目运算符
 *      格式:布尔表达式?表达式1:表达式2;
 *      执行流程:
 *          根据布尔表达式的计算返回一个true或者false,
                      如果是true,就把表达式1作为结果,如果是false,就把表达式2作为结果。
 *
 *
 */
public class OperatorDemo {
    public static void main(String[] args){
        int x = 100;
        int y = 200;
        int z = x > y ? x : y;
        System.out.println(z);

    }
}





本文出自 “11831428” 博客,请务必保留此出处http://11841428.blog.51cto.com/11831428/1853116

java的运算符