JavaSE05——常用运算符

赋值运算符

赋值运算符,就是将符号右边的值,赋给左边的变量。

符号:=

  • 当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制
    类型转换原则进行处理。
  • 支持连续赋值。
  • 扩展赋值运算符: +=, -=, *=, /=, %=
赋值运算符
=赋值
+=加后赋值
-=减后赋值
*=减后赋值
/=除后赋值
%=取模后赋值
public class Demo1 {
    public static void main(String[] args) {

        // 定义变量    
        int i = 3; // 将3赋值给变量i    
        i = i + 2; // 将变量i和2相加,再赋值给变量i    
        System.out.println(i);
        // +=: 赋值运算符, 将=左边的变量和=右边的值进行操作,再赋值给变量    
        int j = 10;
        j += 5; // j = j + 5    
        System.out.println(j);

        int m = 10;
        m -= 5; // m = m ‐ 5;    
        System.out.println(m);
        System.out.println("‐‐‐‐‐‐‐‐‐‐");
        byte b = 1;
        // b = b + 2; // 错误: 不兼容的类型: 从int转换到byte可能会有损失    
        // b += 2; // 可以

        b = (byte) (b + 2);
        System.out.println(b);
    }
}

思考1:

int i = 1;
i *= 0.1;
System.out.println(i);//0 
i++;
System.out.println(i);// 1

思考2:

int m = 2;
int n = 3;
n *= m++; //先算n *= m再++
System.out.println("m=" + m);//3
System.out.println("n=" + n);//6

比较运算符

比较运算符又叫关系运算符,是两个数据之间进行比较的运算,运算结果都是布尔值 true 或者 false 。

赋值运算符
>大于
<小于
>=大于等于
<=小于等于
==比较值是否相等
!=比较值是否不相等
  1. 比较运算符的结果都是boolean型,也就是要么是true,要么是false
  2. 比较运算符“==”不能误写成“=” 。
public class Demo2 {
    public static void main(String[] args) {
        System.out.println(3 == 3); // true    
        System.out.println(3 == 4); // false    
        System.out.println(3 != 4); // true    
        System.out.println(3 > 4); // false    
        System.out.println(3 < 4); // true    
        System.out.println(5 <= 4); // false    
        System.out.println(4 >= 4); // true    
        // 注意    
        int i = 3;
        int j = 4;
        System.out.println(i = j); // 将j赋值给i,输出i    
        System.out.println(i == j); // true    
    }
}

逻辑运算符

  • 逻辑运算符,是用来对两个布尔类型进行运算的,运算结果都是布尔值 true 或者 false

    &—逻辑与 | —逻辑或 !—逻辑非
    && —短路与 || —短路或 ^ —逻辑异或

aba&ba&&ba|ba||b!aa^b
truetruetruetruetruetruefalsefalse
truefalsefalsefalsetruetruefalsetrue
falsetruefalsefalsetruetruetruetrue
falsefalsefalsefalsefalsefalsetruefalse

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

2.“&”和“&&”的区别:

  • 单&时,左边无论真假,右边都进行运算

  • 双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算

  1. “|”和“||”的区别同理,||表示:当左边为真,右边不参与运算。
  2. 异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false。
    理解:异或,追求的是“异”!
public class Demo3 {
    public static void main(String[] args) {
        // & 与: 有false则false, 
        System.out.println(false & false); // false
        System.out.println(false & true); // false
        System.out.println(true & false); // false
        System.out.println(true & true); // true
        System.out.println("‐‐‐‐‐‐‐‐‐‐‐");
        // | 或: 有true则ture, 
        System.out.println(false | false); // false
        System.out.println(false | true); // true
        System.out.println(true | false); // true
        System.out.println(true | true);// true
        System.out.println("‐‐‐‐‐‐‐‐‐‐‐");
        // ! 非: 取反
        System.out.println(!true); // false
        System.out.println(!false); // true
        System.out.println("‐‐‐‐‐‐‐‐‐‐‐");
        // ^ 异或: 不同为true,相同为false
        System.out.println(false ^ false); // false
        System.out.println(false ^ true); // true
        System.out.println(true ^ false); // true
        System.out.println(true ^ true);// false
        
        int i = 3;
        int j = 4;

        //如果左边的为true还会执行后面的,为false不执行后面的
        System.out.println(i == j && ++i > 2);
        System.out.println(i); // 3    
        System.out.println(j); // 4    
        
        //如果左边为true就不执行后面的,为false执行后面的
        System.out.println(i != j || ++i > 2);
        System.out.println(i);// 3    
        System.out.println(j);// 4  

    }
}

练习1:

 public static void main(String[] args) {
        int x=1;
        int y=1;
        if(x++==2& ++y==2){//左边无论真假,右边都进行运算,
        //x++==2为假 因为x=1不等于2 ,所有后面的会执行,++y==2为真,因为先加再比较
            x=7;
        }
        System.out.println("x="+x+"y="+y);//x=2y=2
    }

练习2:

 int x=1,y=1;
        if(x++==2 && ++y==2){//如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
        //进不去判断因为x++==2为假,因为是&&逻辑运算符,后面的++y==2就不会运算则y=1,x=2
            x=7;
        }
        System.out.println("x="+x+"y="+y);

练习3:

		int x = 1,y = 1;
        if(x++==1 | ++y==1){
        //左边无论真假,右边都进行运算;。因为x++==1为真所以为x=7
            x =7;
        }
        System.out.println("x="+x+",y="+y);//x=7,y=2

练习4:

		int x = 1,y = 1;
        if(x++==1 || ++y==1){
            //当左边为真,右边不参与运算。因为x++==1为真所以为x=7,++y==1不执行则y=1
            x =7;
        }
        System.out.println("x="+x+",y="+y);//x=7,y=1

三元运算符

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

  • 条件表达式为true,运算后的结果是表达式1;

  • 条件表达式为false,运算后的结果是表达式2;

表达式1和表达式2为同种类型

三元运算符与if-else的联系与区别:
1)三元运算符可简化if-else语句
2)三元运算符要求必须返回一个结果。
3)if后的代码块可有多个语句

public class Demo4 {
    public static void main(String[] args) {

        int a = 30;
        int b = 30;
        int c = a > b ? 100 : 20;

        System.out.println(c);
    }
}

练习:
获取两个数中的较大数

		int num1=0,num2=1;
        System.out.println(num1>num2?num1:num2);

获取三个数中的较大数

		int a = 5, b = 8 , c = 9;

        a=a>b?a:b; //a与b相比较,将较大值赋值给a

        a=a>c?a:c; //已经获得较大值得a再与c相比较,将较大值再次赋值给a

        System.out.println(a); //输出a的值为9

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值