Java:运算符


黑马程序员学习笔记

基本运算符

  1. 加减乘除,取余 + - * / %
  2. 整数相除结果还是整数,小数直接舍弃
  3. +与字符串做运算时,起连接作用,结果还是字符串(能相加就是+,不能相加就是连接作用)
package com.zhang.oprator;

public class OperatorDemo1 {
   public static void main(String[] args) {
       //目标:掌握基本的算数运算符的使用
       int a = 10;
       int b = 2;
       System.out.println(a + b);
       System.out.println(a - b);
       System.out.println(a * b);
       System.out.println(a / b);
       System.out.println(a % b);
//      在Java中整数相除,小数直接舍弃
       System.out.println(5 / 2);//2.5 ==> 2
       //就是要小数 *1.0
       System.out.println(5.0 / 2);//2.5


       System.out.println("--------------------");
       int i = 5;
       int j = 2;
       System.out.println(i / j);//2.5 ==> 2
       //就是要小数 *1.0
       System.out.println(1.0 * i / j);//2.5


       //目标2:+ 还能做连接符
       int a2 = 5;
       System.out.println("abc"+a2);//abc5
       System.out.println(a2+5);//10
       System.out.println("zhang"+a2+5);//zhang55
       System.out.println(a+a2);
       System.out.println('a'+a2);//97+5
   }
}
  • 运行结果

在这里插入图片描述

自增自减运算符

  • ++、–如果不是单独使用(如在表达式中,或者同时有其他操作),放在变量前后会有明显的区别;
  • 放在变量前边,先对变量进行+1、-1,再拿变量的值进行操作;
	   int b = 5;
       int rs = b++;//先用再加
       System.out.println(b);//6
       System.out.println(rs);//5


       int b2 = 5;//先加再用
       int rs2 = ++b2;
       System.out.println(b2);//6
       System.out.println(rs2);//6

       int b3 = 10;
       int rs3 = --b3;//先减后用
       System.out.println(rs3);//9
       System.out.println(b3);//9

       int b4 = 10;
       int rs4 = b4--;//先用后减
       System.out.println(b4);//9
       System.out.println(rs4);//10

练习题

        int m = 5;
        int n = 3;
        //m 5 6 5 4
        //n 3 4 3
        //           6    -  5 + 5   - 4    +4   +3
        int result = ++m - --m + m-- - ++n + n-- + 3 ;
        System.out.println(result);
        System.out.println(m);//4
        System.out.println(n);//3
  • 所有代码
package com.zhang.oprator;

public class OperatorDemo2 {
   public static void main(String[] args) {
       //目标:自增自减运算符
       int a = 10;
       a++;//a = a + 1;
       System.out.println(a);//11
       ++a;
       System.out.println(a);//12


       System.out.println("\n");
       a--;//a = a - 1
       System.out.println(a);//11
       --a;
       System.out.println(a);//10

       int b = 5;
       int rs = b++;//先用再加
       System.out.println(b);//6
       System.out.println(rs);//5


       int b2 = 5;//先加再用
       int rs2 = ++b2;
       System.out.println(b2);//6
       System.out.println(rs2);//6

       int b3 = 10;
       int rs3 = --b3;//先减后用
       System.out.println(rs3);//9
       System.out.println(b3);//9

       int b4 = 10;
       int rs4 = b4--;//先用后减
       System.out.println(b4);//9
       System.out.println(rs4);//10


       System.out.println("-----------------------------------");
       int m = 5;
       int n = 3;
       //m 5 6 5 4
       //n 3 4 3
       //           6    -  5 + 5   - 4    +4   +3
       int result = ++m - --m + m-- - ++n + n-- + 3 ;
       System.out.println(result);
       System.out.println(m);//4
       System.out.println(n);//3


   }
}

  • 运行结果
    在这里插入图片描述

扩展赋值运算符

全部代码

package com.zhang.oprator;

public class OperatorDemo3 {
    public static void main(String[] args) {
        //扩展运算符  (含一个强制转换)
        //+-
        //需求:收红包
        double a = 9.5;//a 是钱包余额
        double b = 250;//b 是收到的红包
        a += b;//a = (double)(a + b);
        System.out.println(a);


        //需求:发红包
        double a2 = 600;//a2 是钱包余额
        double b2 = 250;//b2 是要发的红包钱数
        a2 -= b2;//a2 = (double)(a2 - b2);
        System.out.println(a2);

        System.out.println("----------------------------------");
        int m = 10;
        int n = 5;
        m += n;//m = (int)(m + n);
        System.out.println(m);
        m -= n;//m = (int)(m - n)
        System.out.println(m);
        m *= n;//m =(int)(m * n)
        System.out.println(m);
        m /= n;//m = (int)(m / n)
        System.out.println(m);

        System.out.println("----------------------------------");
        byte x = 5;
        byte y = 6;
        x += y;
        System.out.println(x);
        //x = x+y; 会报错,因为byte计算是转换成int计算的,也就是说 此时(x+y)是int型,但是x是byte
        //所以 x +=y; 完全等价于 x = (byte)(x + y);

    }
}

在这里插入图片描述
运行结果:
在这里插入图片描述

关系运算符

判断数据是否满足条件,会返回一个布尔值,ture或者false
在这里插入图片描述

package com.zhang.oprator;

public class OperatorDemo4 {
    public static void main(String[] args) {
        int a = 10;
        int b = 5;
        boolean rs = a>b;
        System.out.println(rs);//ture

        System.out.println(a >= b);
        System.out.println(2 >= 2);
        System.out.println(a < b);
        System.out.println(a <= b);
        System.out.println(2 <= 2);
        System.out.println(a == b);//注意 判断是否相等用==
        System.out.println(a != b);
        System.out.println(10 != 10);
    }
}

运行结果:
在这里插入图片描述

逻辑运算符

在这里插入图片描述

 //6.|| 短路或 双或
        //只要遇见一个true,后面的运算不再执行直接返回,true
        int m = 10;
        int n = 50;
        System.out.println(m++ < 100 | n++ < 10);//都执行
        System.out.println(m);//11
        System.out.println(n);//51


        int m1 = 10;
        int n1 = 50;
        System.out.println(m1++ < 100 || n1++ < 10);//只 执行 m1++
        System.out.println(m1);//11
        System.out.println(n1);//50

运行结果:
在这里插入图片描述
全部代码:

package com.zhang.oprator;

public class OperatorDemo5 {
    public static void main(String[] args) {
        //目标:逻辑运算符的使用
        //需求:要求手机必须满足尺寸大于等于6.95,且内存必须大于等于8
        double size = 6.8;
        int storage = 16;
        boolean rs = (size >= 6.95 && storage >= 8);
        System.out.println(rs);

        //需求2 :手机尺寸大于等于6.95 或者  内存大于等于8
        boolean rs2 = (size >= 6.95 || storage >= 8);
        System.out.println(rs2);

        System.out.println("-------------------------------------");
        //! 取反
        System.out.println(!true);
        System.out.println(!false);
        System.out.println(!(2<1));//true

        //4.^ 前后相同false  不同true
        System.out.println(true ^ true);//true
        System.out.println(false ^ false);//true
        System.out.println(true ^ false);//false
        System.out.println(false ^ true);//false


        System.out.println("-------------------------------------");
        //5. && 短路与 双与
        //与&同样的意思,都true为true,否则为false
        //但是,从左往右,只要出现一个false,那么运算结果直接为false,后面的运算不再执行,直接返回false
        int i =10;
        int j = 20;
        System.out.println(100 < i++ & 100 > j++);//& 全部式子都执行
        System.out.println(i);
        System.out.println(j);


        int i2 =10;
        int j2 = 20;
        System.out.println(100 < i2++ && 100 > j2++);//&& 遇见false,后面运算不再执行,直接返回false
        System.out.println(i2);
        System.out.println(j2);
        System.out.println("-------------------------------------");




        //6.|| 短路或 双或
        //只要遇见一个true,后面的运算不再执行直接返回,true
        int m = 10;
        int n = 50;
        System.out.println(m++ < 100 | n++ < 10);//都执行
        System.out.println(m);//11
        System.out.println(n);//51


        int m1 = 10;
        int n1 = 50;
        System.out.println(m1++ < 100 || n1++ < 10);//只 执行 m1++
        System.out.println(m1);//11
        System.out.println(n1);//50

    }
}

运行结果:
在这里插入图片描述

运算符优先级

  • && 的优先级大于 ||
  • 不清楚顺序就打括号

       //&& 优先级大于 ||
       int m = 5;
       int n = 10;
       System.out.println(m > 1 || m < 100 && n < 6);//true
       System.out.println((m > 1 || m < 100 )&& n < 6);//false

三元运算符

格式: 表达式?值1:值2
解释:表达式成立吗?成立选值1,不成立选值2

package com.zhang.oprator;

public class OperatorDemo6 {
    public static void main(String[] args) {
        //三元运算符
        //需求:查看成绩是否合格
        double score = 98;
        String rs = score >= 60 ? "成绩合格" : "成绩不合格";
        System.out.println(rs);

        //需求2 :找出两个数中的较大数,并输出
        int a = 66;
        int b = 99;
        int max = a > b ? a : b;
        System.out.println(max);

        //需求3:找出三个数中的较大数,并输出
        //可以先找出两个数中的较大数,再与第三个数进行比较,这样很容易能明白
        //直接比较三个 代码不宜读,不是好的代码
        int i = 52;
        int j = 85;
        int k = 11;
        int temp = i > j ? i : j;//temp是临时变量
        int rs2 = temp > k ? temp : k;
        System.out.println(rs2);

        //&& 优先级大于 ||
        int m = 5;
        int n = 10;
        System.out.println(m > 1 || m < 100 && n < 6);//true
        System.out.println((m > 1 || m < 100 )&& n < 6);//false
    }
}

执行结果:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值