Java教程

Java初学习03:运算符

本文主要是介绍Java初学习03:运算符,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

运算符

Java语言支持如下运算符:

  • 算术运算符:+,-,*,/,%,++,--
  • 赋值运算符:=
  • 关系运算符:>,<,>=,<=,==,!=instanceof
  • 逻辑运算符:&&,||,!
  • 位运算符:&,|,^,~,>>,<<,>>>(了解!!!)
  • 条件运算符:?,:
  • 扩展赋值运算符:+=,-=,*=,/=

二元运算符

package operator;

public class Demo01 {
    public static void main(String[] args) {
        //二元运算符
        int a = 10;
        int b = 20;
        int c = 25;
        int d = 30;

        System.out.println(a+b);//30
        System.out.println(a-b);//-10
        System.out.println(a*b);//200
        System.out.println(a/b);//0,因为a和b都是int类型的,计算后是0.5,由于是int类型,所以最后结果取0
        System.out.println(a/(double)b);//0.5,强制转换
    }
}

算术运算符

package operator;

public class Demo02 {
    public static void main(String[] args) {
        long a = 1231212321213L;
        int b = 123;
        short c = 10;
        byte d = 8;
        double e = 10;
        int f = 122;

        System.out.println(a+b+c+d);//Long,有一个数为long,结果也为long
        System.out.println(b+c+d);//Int
        System.out.println(c+d);//Int
        System.out.println(a+b+e);//double,有double和long,结果为double,因为double的优先级比long高
        //谁的优先级高,最终结果就转换为谁的


        System.out.println(b%f);//输出1,%是取余数的意思,模运算
    }
}

关系运算符

package operator;

public class Demo03 {
    public static void main(String[] args) {
        //关系运算符返回的结果:正确,错误  布尔值

        int a = 10;
        int b = 20;

        System.out.println(a>b);//false
        System.out.println(a<b);//true
        System.out.println(a==b);//false
        System.out.println(a!=b);//true
    }
}

自加、自减

package operator;

public class Demo04 {
    public static void main(String[] args) {
        //++自加      --自减    一元运算符
        int a = 3;
        int b = a++;//执行完这行代码后,先给b赋值,再自增
        //a = a + 1
        System.out.println(a);//4
        //

        int c = ++a;//执行这行代码前,先给a自增,再赋值给c

        System.out.println(a);//5
        System.out.println(b);//3
        System.out.println(c);//5

        //幂运算   2^3     2*2*2 = 8
        double pow = Math.pow(2,3);//2的3次方
        System.out.println(pow);//8
    }
}

逻辑运算

package operator;
//逻辑运算符
public class Demo05 {
    public static void main(String[] args) {
        //&&与(and)    ||或(or)   !非(取反)
        boolean a = true;
        boolean b = false;

        System.out.println("a && b:"+(a && b));//false
        System.out.println("a || b:"+(a || b));//true
        System.out.println("!(a && b):"+!(a && b));//true

        //逻辑与运算:两个变量都为真,结果才为真true(一假则假,两真则真)
        //逻辑或运算:两个变量中有一个变量为真,结果为真true(一真则真,两假则假)
        //非(取反):未取反之前为真,则结果为假false,反之为真true(与原来结果相反)

        //短路运算
        int c = 5;
        boolean d = (c<4) && (c++<4);
        //因为c<4为假并且为逻辑与运算,所以直接返回false,&&后面的代码没有再执行了,所以c++没有执行;
        //如果c++执行的话,下面的输出语句应该输出的是6,显然这里并没有执行,所以下面输出5,
       	//同时证明了逻辑与运算的第一个变量为false的话就直接返回false,而不会再去执行&&后面的代码了
        
        System.out.println(d);//false
        System.out.println(c);//输出5
    }
}

位运算

package operator;

public class Demo06 {
    public static void main(String[] args) {
        /*
        A = 0011 1100
        B = 0000 1101

        A&B = 0000 1100  如果两个二进制数,同一个位置有一个为0,则为0;两个都为1,则为1
        A|B = 0011 1101  如果两个二进制数,同一个位置有一个为1,则为1,两个都为0,则为0
        A^B = 0011 0001  如果两个二进制数,同一个位置的数字相同,则为0,不相同,则为1
        ~B = 1111 0010   取反

        <<(左移)  左移一位,即*2
        >>(右移)  右移一位,即/2

        0000 0000   0
        0000 0001   1
        0000 0010   2
        0000 0011   3
        0000 0100   4
        0000 1000   8
        0001 0000   16
         */

        System.out.println(2<<3);//输出16
        /*
        2向左移3位,即把二进制数的1向左移3位
        0000 0010   2
        0000 0100   4
        0000 1000   8
        0001 0000   16
         */
    }
}

字符串连接

package operator;

public class Demo07 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;

        a+=b;//a = a + b
        a-=b;//a = a - b

        System.out.println(a);

        //字符串连接符    + ,String
        System.out.println(""+a+b);//输出1020,在操作数的前面如果有String类型,那么其它的操作数都									 转换为String类型,然后进行连接输出

        System.out.println(a+b+"");//输出30,如果操作数在String类型前面,则会进行算术运行,而不会·									 被转换为String类型再跟后面的操作数进行连接

    }
}

三元运算符

package operator;

public class Demo08 {
    public static void main(String[] args) {
        //x ? y : z
        //如果x等于true,则结果为y,否则结果为z

        int score = 80;
        String type = score < 60 ? "不及格" : "及格";
        System.out.println(type);//输出及格
    }
}
这篇关于Java初学习03:运算符的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!