Java教程

Java基础之运算符

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

1.算术运算符

+ - * / % (前)++ (后)++ (前)-- (后)-- +

示例代码

class Test{
    public static void main(String[] args){
        // 除号 /
		int num1 = 12;
		int num2 = 5;
		int result1 = num1 / num2;
        System.out.println(result1); //  2
		
		// 取余运算 %
		int m1 = 12;
		int n1 = 5;
		System.out.println("m1 % n1 = " + m1 % n1 ); //  2
		
		int m2 = -12;
		int n2 = 5;
		System.out.println("m2 % n2 = " + m2 % n2 ); //  -2
		
		int m3 = 12;
		int n3 = -5;
		System.out.println("m3 % n3 = " + m3 % n3 ); //  2
		
		int m4 = -12;
		int n4 = -5;
		System.out.println("m4 % n4 = " + m4 % n4 ); //  -2
		
		// (前)++:先自增1,后运算
		// (后)++:先运算,后自增1
		int a1 = 10;
		int b1 = ++a1;
		System.out.println("a1 = " a1 + ",b1 = " + b1 ); // 11 11
		
		int a2 = 10;
		int b2 = a2++;
		System.out.println("a2 = " a2 + ",b2 = " + b2 ); // 11 10
		
		// (前)--:先自减1,后运算
		// (后)--:先运算,后自减1
		int a3 = 10;
		int b3 = a3--;
		System.out.println("a3 = " a3 + ",b3 = " + b3 ); // 9 10
    }
}

特别说明

1.// (前)++:先自增1,后运算
// (后)++:先运算,后自增1

2.// (前)--:先自减1,后运算
// (后)--:先运算,后自减1

3.连接符:+:只能使用在Sting与其他数据类型变量之间使用。

2.赋值运算符

= += -= *= /= %=

示例代码

class Test{
    public static void main(String[] args){
        // 连续赋值
		int i1 = j1 = 10;
		int i2 = 10, j2 = 20;
        
        // ****
        int i3 = 10;
		i3 += 2;
        System.out.println(i3); //  12
        
        // ****
        short m1 = 10;
		//m1 = m1 +2; // 编译不通过
		m1 += 2;
		System.out.println(m1); //  12  不会改变变量本身的数据类型
    }
}

特别说明

1.运算结果不会改变变量本身的数据类型

2.开发中,如果希望变量实现+2的操作,有几种方法?(前提:int num = 10;)

​ 方式一:num = num + 2 ;

​ 方式二:num += 2;(推荐)

​ 开发中,如果希望变量实现+1的操作,有几种方法?(前提:int num = 10;)

​ 方式一:num = num + 1 ;

​ 方式二:num += 1;

​ 方式三:num++;(推荐)

3.比较运算符

== != > < >= <= instanceof

示例代码

class Test{
    public static void main(String[] args){
        int i = 10;
		int j = 20;
		System.out.println(i == j); // false
		System.out.println(i = j); // 10
		
		boolean b1 = true;
		boolean b2 = false;
		System.out.println(b1 == b2); // false
		System.out.println(b2 = b1); // true
    }
}

特别说明

1.比较运算符的结果是boolean类型

2.> < >= <= :只能使用在数值类型的数据之间

3.==和!=:不仅可以使用在数值类型数据之间,还可以使用在其他引用类型变量之间

4.逻辑运算符

& && | || ! ^

示例代码

class Test{
    public static void main(String[] args){
		// 区分& 与 &&
		// 相同点1:& 与 && 的运算结果相同
		// 相同点2:当符号左边是true时,二者都会执行符号右边的运算
		// 不同点:低昂符号左边是false时,&继续执行符号右边的运算。&&不再执行符号右边的运算
		// 开发中,推荐使用&&
		boolean b1 = true;
		b1 = false;
		int num1 = 10;
		if(b1 & (num1++ > 0)){
			System.out.println("true");
		}else{
			System.out.println("false");
		}
		System.out.println("num1 = " + num1);
		
		boolean b2 = true;
		b2 = false;
		int num2 = 10;
		if(b2 && (num2++ > 0)){
			System.out.println("true");
		}else{
			System.out.println("false");
		}
		System.out.println("num2 = " + num2);
		
		boolean b3 = false;
		b3 = true;
		int num3 = 10;
		if(b3 & (num3++ > 0)){
			System.out.println("true");
		}else{
			System.out.println("false");
		}
		System.out.println("num3 = " + num3);
		
		boolean b4 = false;
		b4 = true;
		int num4 = 10;
		if(b4 && (num4++ > 0)){
			System.out.println("true");
		}else{
			System.out.println("false");
		}
		System.out.println("num4 = " + num4);
    }
}

特别说明

1.逻辑运算符操作的都是boolean类型的变量。而且结果页数boolean类型

5.位运算符

<< >> >>> & | ^ ~

示例代码

class Test{
    public static void main(String[] args){
		int i = 21;
		i = -21;
		System.out.println("i << 2 :" + (i << 2)); // -84
		System.out.println("i << 3 :" + (i << 3)); // -168
		System.out.println("i << 27 :" + (i << 27)); // 1476395008
		
		int m = 12;
		int n = 5;
		System.out.println("m & n:" + (m & n)); // 4
		System.out.println("m | n:" + (m | n)); // 13
		System.out.println("m ^ n:" + (m ^ n)); // 9
    }
}

面试题:你能否写出最高效的2 * 8的实现方式?

2 << 3 或 8 << 1

特别说明

1.位运算符操作的都是整型的数据

2.<<:在一定范围内,每向左移1位,相当于 * 2

​ >>:在一定范围内,每向右移1位,相当于 / 2

5.三元运算符

(条件表达式)? 表达式1 : 表达式2

示例代码

class Test{
    public static void main(String[] args){
        int x = 10;
        int y = 20;
        int z = 30;
        int max;
        
        max = (x > y)? ((x > z)? x : z) : ((y > z)? y : z);
		System.out.println("三个数中最大的数是:"  + max);
        
        if(x > y && x > z){
            max = x;
        }else if(y > x && y > z){
            max = y;
        }else{
            max = z;
        }
        System.out.println("三个数中最大的数是:"  + max);
    }
}

特别说明

1.条件表达式的结果位boolean类型

2.根据条件表达式真或假,决定执行表达式1,还是表达式2

​ 如果表达式为true,则执行表达式1

​ 如果表达式为false,则执行表达式2

3.表达式1和表达式2要求是一致的

4.三元运算符可以嵌套使用

5.凡是可以使用三元运算符的地方,都可以改写为if-else,反之,不成立

6.如果程序既可以使用三元运算符,又可以使用if-esle结果,那么优先选择三元运算符。原因:简洁、执行、效率高

这篇关于Java基础之运算符的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!