JAVA学习笔记二之(5)运算符①

JAVA学习笔记二之(5)运算符①

一、运算符的分类
    1、算数运算符
    2、赋值运算符
    3、比较运算符
    4、逻辑运算符
    5、位运算符
    6、三元运算符
二、算数运算符
    算数运算符包括+,-,*,/,%,++,- -等。
     1、+,-,*,/的使用
class OperatorDemo1 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;

        //加法
        int c = a + b;
        System.out.println(c); //30

        //减法
        int d = a - b;
        System.out.println(d); //-10

        //乘法
        int e = a * b; 
        System.out.println(e); //200

        //除法
        int f = a / b;
        System.out.println(f); //整数相除,结果只能是整数。

        //我就想得到小数
        //float ff = a*1.0f / b;
        //System.out.println(ff);
    }
}
    2、+的用法
        A:加法运算符
        B:正号
        C:字符串连接符
            操作的结果是按照从左到右的顺序进行。
        注意:
            5+5+”=5+5”和”5+5”+5+5的区别。
class OperatorDemo2 {
    public static void main(String[] args) {
        //作为加法运算符
        int a = 10;
        int b = 20;
        int c = a + b;
        System.out.println(c);
        System.out.println("---------------");

        //作为正号
        System.out.println(30);
        System.out.println(+30);
        System.out.println(-30);
        System.out.println("---------------");

        //作为字符串连接符
        String s = "hello";
        int x = 100;
        //有问题,不能和字符串这样直接转换
        //x = x + s;
        s = x + s;
        System.out.println(s);

        System.out.println("5+5="+5+5);
        //第一次:"5+5=5"
        //第二次:"5+5=55"
        System.out.println(5+5+"=5+5");
        //第一次:10
        //第二次:"10=5+5"


        //字符
        System.out.println('a');
        System.out.println('a'+1); //'a' = 97
        //ASCII码表 数值和基本字符的对应关系表。

        //'a' = 97
        //'A' = 65
        //'0' = 48

        System.out.println('a'+1+"haha");
        System.out.println("haha"+'a'+1);
    }
}
    3、/和%的用法
        (1)、/:求商,就是两个数据做除法。
        (2)、%:取余,就是数据做除法,得到余数。
            两个操作数据,分为左边和右边:
                左边小于右边,结果是左边。
                左边等于右边,结果是0。
                左边大于右边,结果是余数。
            最终的余数的符号和左边的操作数一致。
class OperatorDemo3 {
    public static void main(String[] args) {
        int a = 3;
        int b = 5;
        //除法的用法
        System.out.println(a/b);

        //取余的用法
        System.out.println(3%5); //3
        System.out.println(5%5); //0
        System.out.println(7%5); //2
        System.out.println(-3%5); //-3
        System.out.println(3%-5); //3
    }
}
    4、++,- -运算符
        ++,- -运算符也就是自增,自减运算符。
        作用:其实就是针对本身加1或者减1操作。
        它们可以放在操作数据的前面或者后面。

        注意:

            A:如果是单独使用,位置前后效果一致。
            B:如果是参与操作使用,放在后面,是先操作,再++或者- -;放在前面,是先++或者- -,再操作。
class OperatorDemo4 {
    public static void main(String[] args) {
        int a = 10;

        //a++; // a = a + 1;
        //++a;

        //a--;
        //--a;
        //System.out.println(a);

        //int b = a++;
        //System.out.println(a); //11
        //System.out.println(b); //10

        int b = ++a;
        System.out.println(a); //11
        System.out.println(b); //11

    }
}
class OperatorDemo5 {
    public static void main(String[] args) {
        int a = 9;
        int b = 9;
        int c = 9;

        //a=9,b=9,c=9

        b = a++; //a=10,b=9,c=9
        c = --b; //a=10,b=8,c=8
        --a; //a=9,b=8,c=8
        c++; //a=9,b=8,c=9

        System.out.println(a);
        System.out.println(b);
        System.out.println(c);

        System.out.println("------------------");

        int x = 10;
        x++;
        x = x + 20;
        System.out.println(x);
    }
}
    5、赋值运算符
        =:赋值。
        +=,-=,*=,/=,%=:
            +=:把左边和右边的结果赋值给左边。
        注意:
            一个变量的使用,必须先声明,再赋值,最后使用。
class OperatorDemo6 {
    public static void main(String[] args) {
        //定义变量
        int a =10; //把10赋值给int类型的变量a
        System.out.println(a);

        //int b; //错误:可能尚未初始化b
        //System.out.println(b);
        //b = b + 100;//错误:可能尚未初始化b

        //int b;
        //b = 100;
        //System.out.println(b);

        //int a = 9;
        //int b = 9;
        //int c = 9;

        //可不可以同时赋值呢?
        //int a = b = c = 9; //做法错误

        //int a;
        //int b;
        //int c;

        //a = b = c = 9;

        //改进版
        //int a, b, c;
        //int a;b;c; //错误

        int x = 100;
        int y = 200;
        x += y; //把x加上y然后赋值给x
        //x = x + y;
        System.out.println(x);
    }
}

三、面试题

看程序是否有问题,如果有请指出:
//代码1
short s = 1;
s = s + 1; // 错误: 可能损失精度
System.out.println(s);


//代码2
short ss = 1;
ss += 1;
System.out.println(ss);
第一行代码中有问题。因为类型的提升。
第二行代码中没有问题,因为+=隐含了强制类型转换。

+=这种做法的真实步骤:
    x += y;

    x = (x的数据类型)(x + y);
class OperatorDemo7 {
    public static void main(String[] args) {
        //代码1
        //short s = 1;
        //s = s + 1; //错误: 可能损失精度
        //System.out.println(s);


        //代码2
        short ss = 1;
        ss += 1; // ss = ss + 1;
        //ss = (short)(ss + 1);
        System.out.println(ss);

    }   
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值