JavaSE基础之运算符

目录

运算符

1、算数运算符

 案例练习:数值拆分

+操作的三种情况

2、赋值运算符


运算符

JavaSE基础专栏中前面我们学过了通过字面量和变量来表示一个数据,这篇博客,我们来继续学习对数据进行运算。而对数据运算就要用到我这里要讲解的运算符,而在讲解具体的运算符之前,我对运算符和表达式做一个简单的描述:

运算符:对字面量或者变量进行操作的符号

表达式:运算符把字面量或者变量连接起来符合java语法的式子就可以称为表达式。不同运算符连接的表达式体现的是不同类型的表达式。

例如:

int a = 10;//定义一个变量a并赋值10

int b = 20;//定义一个变量b并赋值20

int c = a + b;//定义一个变量c并赋值表达式a+b

+:是运算符,是算术运算符

a + b:是表达式,由于+是算术运算符,所以这个表达式叫算术表达式

总共要学习5种类型的运算符:

  1. 算数运算符
  2. 赋值运算符
  3. 关系运算符
  4. 逻辑运算符
  5. 三元运算符

后三种标记为灰色了,后面我讲结构的时候会学习。这里我们先学习前两种,首先我们来学习算术运算符


1、算数运算符

Java中的算数运算符有如下几种:

算数运算符
符号作用说明
+参照小学一年级
-参照小学一年级
*参照小学二年级,与 “ X ”相同 
/参照小学二年级,与 “ ÷ ”相同 
%取余获取的是两个数据做除法的余数

了解了Java中的算术运算符之后,下面我们到IDEA中去使用一下:

public class OperatorDemo {
    public static void main(String[] args) {
        //定义两个int类型的变量
        int a = 6;
        int b = 4;

        System.out.println(a + b);//10
        System.out.println(a - b);//2
        System.out.println(a * b);//24
        System.out.println(a / b);//为什么不是1.5而是1
        System.out.println(a % b);//2

        //整数相除只能得到整数,要想得到小数,必须有浮点数的参与
        System.out.println(6.0 / 4);
    }
}

总结两个注意事项:

1、 / 和 % 的区别:都是两个数做除法,但是 / 取结果的商,%取结果的余数

2、整数操作只能得到整数,要想得到小数,必须有浮点数参与运算


 案例练习:数值拆分

需求:定义一个三位数,将其拆分为个位、十位、百位后,输出在控制台

举例:int number = 123;

在控制台输出结果:个位是:3       十位是:2      百位是:1

我写的参考代码:

public class OperatorTest {
    public static void main(String[] args) {
        //案例数值拆分
        
        //定义一个三位数
        int number = 123;

        //获取个,十,百位的数据
        int geWei = number % 10;
        int shiWei = number / 10 % 10;
        int baiWei = number / 100 % 10;

        //输出结果
        System.out.println("个位是:" + geWei);
        System.out.println("十位是:" + shiWei);
        System.out.println("百位是:" + baiWei);
    }
}

+操作的三种情况

1、数字相加(类型转换)

在Java程序中,数据参与运算,要求类型一致。这里就涉及到了数据的类型转换。而类型转换又分为两种:

        1.隐式转换

        2.强制转换

隐式转换:把一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量

强制转换:把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量

格式:数据类型变量名= (目标数据类型)(数值或者变量)

IDEA中的代码演示:

public class OperatorDEmo01 {
    public static void main(String[] args) {
        int a = 10;
        double b = 13.14;
        System.out.println(a + b);//这里a作为一个int类型被隐式转换为double类型做了操作

        int c = (int) (a + b);//23,可见直接舍弃了小数部分
        System.out.println(c);//这里用了强制转换,将double类型(a+b)强制转换为c
        //double d = a + b;

        //short转int也是同理
        short s = 10;
        int i = 20;
        int j = s + i;
        //short ss=s+i;

        short ss = (short) (s + i);
    }
}

2、字符相加

看一段IDEA中的代码,然后再回来总结。

public class OperatorDemo02 {
    public static void main(String[] args) {
        int a = 10;
        char ch = 'A';
        System.out.println(a + ch);//75可知'A'的值是65
        ch = 'a';
        System.out.println(a + ch);//107可知'a'的值为97
        ch = '0';
        System.out.println(a + ch);//58可知'0'的值是48
    }
}
代码演示完毕后,回到博客里总结:
字符参与+操作,其实就是拿字符在计算机底层对应的数值来进行计算的,这里我们了解一下英文大小写字符和数字字符对应的数据值:(有三个需要记忆)
        ‘A’ 65 A-Z是连续的
        ‘a’ 97 a-z是连续的
        ‘0’ 48 0-9是连续的
这里也给大家准备了一张ASCII码表,里面有常用的字符及其对应的数值关系:

3、字符串相加

同样先看IDEA中代码,然后再回来总结。IDEA中代码演示如下:

public class OperatorDemo03 {
    public static void main(String[] args) {
        System.out.println("瓦特"+"的代码"+"小屋");
        System.out.println("瓦特的代码小屋"+"888");
        System.out.println(666+"瓦特的代码小屋");

        System.out.println("瓦特的代码小屋"+8+88);
        System.out.println(98+1+"代码小屋");
    }
}

代码演示完毕后,回到资料总结:

        当“+”操作中出现字符串时,这个“+”是字符串连接符,而不是算术运算

                例如:“瓦特的代码小屋”+ 888

        当连续进行“+”操作时,从左到右逐个执行

                例如:1+ 9999 + “岁zhongguo”

算数运算符讲解完毕,大家赶快动手练习一下


2、赋值运算符

赋值运算符
符号作用说明
=赋值a = 10,将10赋值给变量a
+=先加后赋值a += b,将a+b的结果赋值给a
-=先减后赋值a -= b,将a-b的结果赋值给a
*=先乘后赋值a *= b,将a*b的结果赋值给a
/=先除后赋值a /= b,将a/b的结果赋值给a
%=先取余后赋值a%=b,将a%b的结果赋值给a

了解了Java中的赋值运算符之后,下面我们到IDEA中去使用一下:

public class OperatorDemo04 {
    public static void main(String[] args) {
        int a = 10;
        System.out.println("a:" + a);
        //+=:将左右边数据相加赋值给左边
        a += 20;//相当于a = a + 20;
        System.out.println("a:" + a);//30

        //有一个小Tips:扩展的赋值运算符底层隐藏了强制类型转换
        short s = 1;
        s += 2;//相当于s = (short)(s+2);
        System.out.println("s: " + s);
    }
}

注意事项:

扩展的赋值运算符隐含了强制类型转换

感谢大家! 


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瓦特的代码小屋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值