Java笔记--基本运算符

基本运算符


Java支持如下格式的运算符 优先级: 一般使用括号,表示得更清楚

  • 算术运算符: +(加)、—(减)、*(乘)、/(除)、%(口语余数,属于模运算)、++、——;
public class Demo01 {
    public static void main(String[] args) {

        //二元运算符
        //ctrl + d :复制当前行到下一行
        int a = 10;
        int b = 20;
        int c = 30;
        int d = 40;
        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/b);  //输出结果为0,显然是错误的,因为int类型取整,所以导致结果为0.故强转类型,可正确显示结果
        System.out.println(a/(double)b);  //输出结果为0.5,符合预期
    }
}
public class Demo04 {
    public static void main(String[] args) {

        // ++ -- 自增  自减 也称为一元运算符
        int a = 3;
        int b = a++;
        int c = ++a;
        System.out.println(a);    //输出结果为5
        System.out.println(b);    //输出解雇为3
        System.out.println(c);    //输出结果为5
        /*
        分析:
        int b = a++; ++在后可理解为先赋值,再计算;具体过程为;先将a赋值给b,然后再运行a=a+1;所以此时b的输出结果为3,a的结果为4
        int c = ++a; ++在前面可理解为先计算,再赋值;具体过程为:先运行a=a+1.然后再将计算之后的a赋值给c,所以此时c的输出结果为5,a的输出结果为5
        记忆口诀为:谁在前,先运行谁
         */
        //=============================================================
        //幂运算  2^3=8 怎么计算? Java中没有^这个符号,需要借助一些工具类  Math类
        double pow = Math.pow(2, 3);
        System.out.println(pow);
    }
}
  • 赋值运算符:

  • 关系运算符:>、<、>=、<=、==、!=(不等于)、instantceof;

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

        //关系运算符的返回结果;正确  错误  布尔值
        //配合if 使用
        int a = 10;
        int b = 20;
        int c = 21;

        System.out.println(a>b);
        System.out.println(a<b);
        System.out.println(a==b);
        System.out.println(a!=b);
        System.out.println(c%a);    //模运算(取余数)  21/10=2.....1;因此结果输出为1

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

        System.out.println("a && b:"+ (a && b));    //逻辑与运算  两个变量都为真,输出真
        System.out.println("a || b"+ (a || b));    //逻辑或运算  两个变量有一个为真,输出真
        System.out.println("! (a && b):"+ !(a && b));    //如果是在真则输出假,如果是假则输出真


        System.out.println("=========================================");
        //短路运算
        int c = 5;
        boolean d = (c<4)&&(c++<7);
        System.out.println(c);    //输出结果为5,分析:判断C<4为假,则不再进行下一步c++<7的运算;
        System.out.println(d);    //输出结果为false

        System.out.println("===============================================");
        //&&第一个运算为真的情况
        int e = 6;
        boolean f = (e<7)&&(e++<10);
        System.out.println(e);   //输出结果为7;分析:判断e<7,为true,则进行下一步e++运算;
        System.out.println(f);    //输出结果为false

        System.out.println("===============================================");
        int g = 4;
        boolean h = (g<5) || (g++<6);
        System.out.println(g);    //输出结果为4 分析:判断g<5为true,则不进行g++运算
        System.out.println(h);    //输出结果为true

        System.out.println("===============================================");
        int g1 = 4;
        boolean h1 = (g1<3) || (g1++<6);
        System.out.println(g1);    //输出结果为5;分析:判断g1<3为false,进行g1++运算
        System.out.println(h1);    //输出结果为true
    }
}
  • 位运算符:& | ^ ~ >>(左移) <<(右移) >>>
public class Demo06 {
    public static void main(String[] args) {
        /*
        A = 0011 1100
        B = 0000 1101
        -----------------------------------
        A&B   上下比对00得0,10得0,11得1  结果为:0000 1100
        A|B   上下比对都是0则为0,否则为1  结果为:0011 1101
        A^B   上下比对相同则为0,不同为1  结果为:0011 0001
        ~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
        System.out.println(3<<1);  //输出解雇为6 乘以1次2
        System.out.println(3<<2);  //输出结果为12,乘以2次2
        System.out.println(3<<3);  //输出结果为24
        System.out.println(3<<4);  //输出结果为48

        //怎样计算2^8最快
        System.out.println(2<<7);  //乘以7次2
    }
}
  • 条件运算符(三元运算符): ? :
//三元运算符
public class Demo08 {
    public static void main(String[] args) {
        //x ? y : z
        //如果x为true,则结果为y;反之为z

        int score = 60;
        String type = score < 60 ? "不及格" : "及格";  //必须掌握
        // if
        System.out.println(type);  //输出结果:及格
    }
}
  • 扩展赋值运算符:+=; -=; *=; /=;

    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);
            System.out.println(b);
    
            //字符串连接符  +  ,String
            System.out.println(""+a+b);  //输出结果为1020,分析:如果字符串在前,+会对其进行拼接;
            System.out.println(a+b+"");  //输出结果为30,分析:如果字符串在后,会先进行a+b运算,再进行拼接;
            System.out.println(a+b+"==");  //输出结果为30==,分析:先进行a+b,再拼接=;
        }
    }
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值