Java(1)_Java 运算符

Java(1)_Java 运算符

自增自减运算符

image

  • ++和-- 既可以放在变量的后边,也可以放在变量的前边
  • 单独使用的时候, ++和-- 无论是放在变量的前边还是后边,结果是一样的。
  • 参与操作的时候,如果放在变量的后边,先拿变量参与操作,后拿变量做++或者--。
    参与操作的时候,如果放在变量的前边,先拿变量做++或者--,后拿变量参与操作。
/*	
	赋值运算符
*/
public class OperatorDemo {
	public static void main(String[] args) {
		//把10赋值给int类型的变量i
		int i = 10;
		System.out.println("i:" + i); //结果等于10
		
		// += 把左边和右边的数据做加法操作,结果赋值给左边
		i += 20;
		//i = i + 20;
		System.out.println("i:" + i); //结果等于30
		
		//注意:扩展的赋值运算符底层隐含了强制类型转换
		short s = 10;
		s += 20;
		//s = (short)(s + 20);
		System.out.println("s:" + s);  //结果等于30
	}
}

逻辑运算符

image

package com_iteheima;

public class Java_3 {
    public static void main(String[] args) {
        //定义变量
        int i = 10;
        int j = 20;
        int k = 30;

        //& 有false则false
        System.out.println((i > j) & (i > k)); //false & false  结果为:false
        System.out.println((i < j) & (i > k)); //true & false	结果为:false
        System.out.println((i > j) & (i < k)); //false & true	结果为:false
        System.out.println((i < j) & (i < k)); //true & true	结果为:true
        System.out.println("--------");

        //| 有true则true
        System.out.println((i > j) | (i > k)); //false | false	结果为:false
        System.out.println((i < j) | (i > k)); //true | false	结果为:true
        System.out.println((i > j) | (i < k)); //false | true	结果为:true
        System.out.println((i < j) | (i < k)); //true | true	结果为:true
        System.out.println("--------");

        //^ 相同为false,不同为true
        System.out.println((i > j) ^ (i > k)); //false ^ false	结果为:false
        System.out.println((i < j) ^ (i > k)); //true ^ false	结果为:true
        System.out.println((i > j) ^ (i < k)); //false ^ true	结果为:true
        System.out.println((i < j) ^ (i < k)); //true ^ true	结果为:false
        System.out.println("--------");

        //!
        System.out.println((i > j)); //false		结果为:false
        System.out.println(!(i > j)); //!false		结果为:true
        System.out.println(!!(i > j)); //!!false	结果为:false
        System.out.println(!!!(i > j)); //!!!false	结果为:true
    }
}

短路逻辑运算符

image
在逻辑与运算中,只要有一个表达式的值为false,那么结果就可以判定为false了,没有必要将所有表达式的值都
计算出来,短路与操作就有这样的效果,可以提高效率。同理在逻辑或运算中,一旦发现值为true,右边的表达式
将不再参与运算。

  • 逻辑与&,无论左边真假,右边都要执行
  • 短路与&&,如果左边为真,右边执行;如果左边为假,右边不执行。
  • 逻辑或|,无论左边真假,右边都要执行。
  • 逻辑或|,无论左边真假,右边都要执行。

举个例子:

int x = 3;
int y = 4;
System.out.println((x++ > 4) & (y++ > 5)); // 两个表达都会运算
System.out.println(x); // 4
System.out.println(y); // 5
System.out.println((x++ > 4) && (y++ > 5)); // 左边已经可以确定结果为false,右边不参与运算
System.out.println(x); // 4
System.out.println(y); // 4

三元运算符

三元运算符语法格式::关系表达式 ? 表达式1 : 表达式2;

  • 解释:问号前面的位置是判断的条件,判断结果为boolean型,为true时调用表达式1,为false时调用表达式2。其
    逻辑为:如果条件表达式成立或者满足则执行表达式1,否则执行第二个。
    举例:
int a = 10;
int b = 20;
int c = a > b ? a : b; // 判断 a>b 是否为真,如果为真取a的值,如果为假,取b的 结果为:20
原文地址:https://www.cnblogs.com/rouehang/p/15067362.html