Java学习Day07

运算符

算术运算符(二元运算符)

  1. 内容: +加; -减; *乘; /除;%取余或模运算(取余数); ++自增; --自减;(自增自减在一元运算符中演示)

  2. 演示:

public class Demon01 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int c = 25;
        int d = 25;

        System.out.println(a * b);//200
        System.out.println(a + b);//30
        System.out.println(a - b);//-10
        System.out.println(a /(double)b);//0.5   还可以使用 System.out.println(a /(1.0*b)):原理,先将b转化为浮点数(double类型)
        //因为a/b=0.5,为小数,非int类型,如果使用System.out.println(a /b);会因为精度问题而输出0.

        int e =21;
        System.out.println(e%a);//1
        //e%a相当于 e/a=2.....1 取其余数1

3.注意: 运算中数据类型的转换

public class Demon02 {
    public static void main(String[] args) {
        byte a =8;
        short b =10;
        int c =123;
        long d=123123123L;

        System.out.println(a+b+c+d);//123123264,long类型
        System.out.println(a+b+c);//141 int类型
        System.out.println(a+b);//18  int类型
        //运算没有long时,运算后所有非int类型转化为int类型,有long时转化为long类型,有double类型同理,添加类型转换命令除外

关系运算符

  1. **内容:**大于>;小于<;大于等于>=;小于等于<=;等于==;不等于!=

  2. 注意: 关系运算符返回的结果是 true或false(布尔值)

  3. 演示:

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

        int a = 10;
        int b = 20;

        System.out.println(a==b);//false
        System.out.println(a>b);//false
        System.out.println(a<b);//true
        System.out.println(a!=b);//true
        }
}

一元运算符(自增++;自减- -)

  1. 注意: 自增自减的单位为1
  2. 演示:
public class Demon04 {
    public static void main(String[] args) {
        int a =3;

        int b =a++;
        //执行完这行代码后,先给b赋值a,a再自增,即执行后,先b=a=3,再a=a+1=4
        System.out.println(b);//3(赋值)
        System.out.println(a);//4(自增)

        int c =++a;
        //执行完这行代码前,a先自增,再赋值给c,即执行完之前,先a=a+1=4+1=5,再c=a=5
        System.out.println(a);//5(自增)
        System.out.println(c);//5(赋值)
        }
}

3.记: 哪个距离近,先执行哪个

逻辑运算符

  1. 内容: && 与(且,and);
    || 或(or);
    ! 非(取反):
  2. 演示:
public class Demon05 {
    public static void main(String[] args) {
        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((a&&b))可直接输出真与假;,即如果将“ ”及其内容去掉,只输出结果,其中的 + 起到连接作用*/
        }
}      
  1. 短路运算
public class Demon05 {
    public static void main(String[] args) {
        //短路运算:在逻辑与运算中,有一假则输出false,如果多个变量并列,第一个为假,则会直接输出false而不再运算其后的变量
        int c =5;
        boolean d =(c<4)&&(c++<10);

        System.out.println(d);//false
        System.out.println(c);//5  此处输出的是未进行c++运算的c值,
        /*此处由于c=5<4明显为假且在前,在逻辑与运算中,则不再继续向后运算,即短路了,直接输出false,其后的c++不再进行运算*/
        }
}        

位运算(二进制)

  1. 内容:
    &与(且);
    |或;
    ^;
    ~非(取反);
    <<左移(*2);
    >>右移(/2):

  2. 演示:

public class Demon06 {
    public static void main(String[] args) {
        /*
           A=0011 1100
           B=0000 1101

         A&B=0000 1100(对应项,AB都为1,则A&B为1,否则为0) 一0则0  其余为1
         A|B=0011 1101(对应项,AB都为0,则A|B为0,否则为1)  一1则1  其余为0
         A^B=0011 0001(对应项,相同为0,不相同为1)         相同为0  其余为1  (异或运算:不进位加法)
         ~B=1111 0010(与B完全相反)                       完全相反

         2*8=16=2*2*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,在二进制中,2左移三位,即2*2*2*2,左移即*2,同理,十进制中,左移*10
        System.out.println(3<<3);//3*2*2*2=24

        //位运算因为直接使用二进制,效率极高
    }
}

扩展赋值运算符:

  1. 内容:
    -=;
    *=;
    +=;
    /=;

2.演示:

  public class Demon07 {
    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);//a+b-b=10 
    }
}

字符串连接符(+)

public class Demon07 {
    public static void main(String[] args) {
        System.out.println(a+b);//30
        System.out.println("1"+(a+b));//130,先运算a+b,再输出字符串1ab,即130
        System.out.println("1"+a+b);//11020,输出字符串1ab,即11020
        //String为字符串,通常用法为 String 变量名="值",所以""可以代表Str类型
        //  +  为字符串连接符:当  +  前面出现字符串类型的数据,则所有数据都会被转化成字符串类型的数据而后输出

        /*注意区分*/
        System.out.println(""+a+b);//1020,字符串类型在+前,后面a+b中 + 成为字符串连接符,
        System.out.println(a+b+"");//30,字符串类型在+后,前面a+b正常运算后输出
    }
}

条件运算符(三元运算符)

  1. 格式: 条件 ? 结果A : 结果B;
  2. 演示:
public class Demon08 {
    public static void main(String[] args) {
          /* x ? y :z */
        //如果x==true,则结果为y,否则则结果为z

        int Score=80;
        String   type   =  Score <60 ?"不及格":"及格";
    // 数据类型  变量名  =             值
        System.out.println(type);//及格

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值