Java算数运算符有哪些?加减乘除取余用法详解

 更新时间:2026年11月04日 09:52:18   作者:gh-xiaohe  
还在为Java运算符头疼吗?这篇文章用大白话讲透算数运算符、自增自减、逻辑运算符和三元运算符的用法,还教你用Scanner实现键盘录入,看完就能上手写代码

运算符

基本算数运算符

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

算数运算符

public class OperatorDemo1 {
    public static void main(String[] args) {
        // 目标:掌握基本的算术算术运算符的使用:+ - * / %
        int a = 10;
        int b = 3;
        System.out.println(a + b);
        System.out.println(a - b);
        System.out.println(a * b);
        System.out.println(a / b); // 3.3333  ==>  3 转成整形
        System.out.println(a * 1.0 / b); // 3.3333
        System.out.println(3 / 2); // 1
        // 让数据 变成小数 整数 * 1.0 类型就是 double 类型 放在前面 乘 放在后面 乘 3 / 2 = 1  1 * 1.0 = 1.0
        System.out.println(3 * 1.0 / 2); // 1.5
        System.out.println(3  / 2 * 1.0); // 1.0
        System.out.println(a % b); // 1
    }
}

小技巧

整数做运算 让其结果变成小数 如果操作   * 1.0

总结:

算数运算符有哪些?

、-、 *、 /、 %

/ 需要注意什么,为什么?

如果两个整数做除法,其结果一定是整数,因为最高类型是整数。

案例数值拆分

需求:一个三位数,将其拆分为个位、十位、百位后,打印在控制台

public class OperatorTest2 {
    public static void main(String[] args) {
        // 需求:拆分3位数,把个位、十位、百位分别输出
        int data = 589;

        // 1、个位
        int ge = data % 10;
        System.out.println(ge);

        // 2、十位
        int shi = data / 10 % 10;
        System.out.println(shi);

        // 3、百位
        int bai = data / 100;
        System.out.println(bai);
    }
}      

+符号做连接符

“+”符号与字符串运算的时候是用作连接符的,其结果依然是一个字符串。

小技巧

能算则算,不能算就在一起。(计算机很聪明)

演示

public class OperatorDemo3 {
    public static void main(String[] args) {
        // 目标:+符号做连接符的识别
        int a = 5 ;
        System.out.println("abc" + 'a'); // abca
        System.out.println("abc" + a);   // abc5
        System.out.println(5 + a); // 10
        System.out.println("abc" + 5 + 'a'); // abc5a
        System.out.println(15 + "abc" + 15); // 15abc15
        System.out.println(a + 'a'); // 102
        System.out.println(a + "" +'a'); // 5a
        System.out.println(a + 'a'+" itheima "); // 102 itheima
        System.out.println("itheima"+ a + 'a'); // itheima5a
        System.out.println("itheima"+ ( a + 'a' ));// itheima102
    }
}

总结:

“+” 除了做基本数学运算,还有哪些功能?

与字符串做+运算时会被当成连接符 ,其结果还是字符串。

能算则算,不能算就在一起。

自增自减运算符

注意:

  • ++ 和 – 既可以放在变量的后边,也可以放在变量的前边。
  • ++ 、-- 只能操作变量,不能操作字面量的。
    int a = 10;
    // a++; // a = a + 1
    ++a; // a = a + 1
    System.out.println(a); // 11

自增自减的使用注意事项

++、–如果不是单独使用(如在表达式中、或者同时有其它操作),放在变量前后会存在明显区别

放在变量的前面,先对变量进行+1、-1,再拿变量的值进行运算。

放在变量的后面,先拿变量的值进行运算,再对变量的值进行+1、-1

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

        int b = 10;
        //b--; // b = b -1
        --b;
        System.out.println(b); // 9

        System.out.println("------------------------------");
        // 在表达式中或者不是单独操作的情况,++ -- 在变量前后存在区别
        // ++ -- 在变量前面。先+1 -1 再使用。
        int i = 10;
        int j = ++i;
        System.out.println(i); // 11
        System.out.println(j); // 11

        // ++ -- 在变量的后面 先使用再+1 -1
        int m = 10;
        int n = m++;
        System.out.println(m); // 11
        System.out.println(n); // 10

    }
}

总结:

自增、自减运算符是什么,有什么作用,需要注意什么?

  • ++、–。对当前变量值+1、-1
  • 只能操作变量,不能操作字面量

自增、自减运算符在变量前后有区别吗?

  • 如果单独使用放前后是没有区别的。
  • 非单独使用:在变量前 ,先进行变量自增/自减,再使用变量。
  • 非单独使用:在变量后 ,先使用变量,再进行变量自增/自减。

自增、自减拓展案例(面试题可能会出现)

public class OperatorDemo4 {
    public static void main(String[] args) {
        System.out.println("-----------拓展案例(可以了解和参考)--------------");
        /*
        int rs3 = c++ + ++c - --d - ++d + 1 + c--;
         未运算    11     12    5    4         12 -> 11
         运算值    10  +  12 -  4  - 5   + 1 + 12  // 26

         c 10 -> 11 - > 12 -> 11
         d 5  -> 4  - > 5
        * */
        System.out.println(rs3); //26
        System.out.println(c);   // 11
        System.out.println(d);   // 5
    }
}

赋值运算符

基本赋值运算符

就是“=”

扩展赋值运算符

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

public class OperatorDemo5 {
    public static void main(String[] args) {
        // 目标:学会使用赋值运算符:= += -= *= /= %=
        int a = 10;
        int b = 200;
        // a = a + b;
        a += b; // a = (int)(a + b)
        System.out.println(a); // 210

        byte i = 10;
        byte j = 20;
        // i = (byte) (i + j);
        i += j; // i = (byte) (i + j);
        System.out.println(i); // 30 

        int m = 10;
        int n = 5;
        //m += n;
        //m -= n;  // 等价于: m = (int)(m - n)
        //m *= n;  // 等价于: m = (int)(m * n)
		//m /= n;  // 等价于: m = (int)(m / n)
        m %= n;  // 等价于: m = (int)(m % n) 0
        System.out.println(m);
    }
}

总结:

赋值运算符有哪些?

  • =、+=、-=、*=、/=、%=

作用是什么?

  • 基本作用是赋值,扩展运算符还自带了强制类型转换。
  • +=还可以实现数据的累加,把别人的数据加给自己

关系运算符

是对数据进行条件判断的符号,最终会返回一个比较的布尔结果(false,true)。

注意:在做相等判断是,千万不要把 == 误写成 =

public class OperatorDemo6 {
    public static void main(String[] args) {
        // 目标:学会使用关系运算符。
        int a = 10;
        int b = 10;

        boolean rs = a == b;
        System.out.println(rs); //true

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

        int i = 10;
        int j = 5;
        System.out.println(i == j); // false
        System.out.println(i != j); // true
        System.out.println(i > j); // true
        System.out.println(i >= j); // true
        System.out.println(i < j); // false
        System.out.println(i <= j); // false

        System.out.println(i = j); // 5 相等判断必须是== 如果使用=是在进行赋值操作!
    }
}

逻辑运算符

逻辑运算符概述(既然想看结果,又想执行 &、|)

  • 可以把多个条件的布尔结果放在一起运算,最终返回一个布尔结果。(同时满足多个条件)

短路逻辑运算符(使用较多)

注意:逻辑与 “&” 、逻辑或“|”: 无论左边是 false还是 true,右边都要执行。

public class OperatorDemo7 {
    public static void main(String[] args) {
        // 目标:学会使用逻辑运算符,并能够选择合适的逻辑运算符解决问题。
        double size = 9.8;
        double storage = 6;
        // 需求:尺寸大于等于6.95 内存要大于等于8GB
        // 注意:必须前后都是true结果才是true
        System.out.println(size >= 6.95 & storage >=8); // false

        // 需求:要么内存大于等于8 要么尺寸大于等于6.95
        // 注意:只要有一个是true 结果就一定是true
        System.out.println(size >= 6.95 | storage >=8); // true

        System.out.println(!true); // false
        System.out.println(!false); // true

        // 逻辑异或:必须两个不同结果才是true
        System.out.println(false ^ true); // true
        System.out.println(true ^ false); // true
        System.out.println(true ^ true); // false
        System.out.println(false ^ false); // false

        System.out.println("-----------&&  &  || |的区别-------------------");
        int a = 10;
        int b = 20;
        // System.out.println(a > 100 && ++b > 10);
        System.out.println(a > 100 & ++b > 10); //false
        System.out.println(b); //21

        int i = 10;
        int j = 20;
        //System.out.println(i > 2 || ++j > 10);
        System.out.println(i > 2 | ++j > 10); // true
        System.out.println(j); // 21

    }
}

总结:

逻辑运算符有哪些,有什么特点?

  • 逻辑与“&” :有一个为false、结果是false
  • 短路与&&: 一个为false、结果是false。前一个为false,后一个条件不执行了
  • 逻辑或“|”:有一个为true、结果是true
  • 短路或||:一个为true、结果是true。前一个为true,后一个条件不执行了
  • 逻辑非“!”:!false=true、 !true=false
  • 逻辑异或“^” :相同是false、不同是true。

注意:实际开发中、常用的逻辑运算符还是:&& 、 || 、 !

三元运算符

public class OperatorDemo8 {
    public static void main(String[] args) {
        // 目标:学会使用三元运算符,理解其流程
        double score = 18;
        String rs = score >= 60 ? "考试通过" : "挂科";
        System.out.println(rs); // 挂科

        // 需求:需要从2个整数中找出较大值
        int a = 10000;
        int b = 2000;
        int max = a > b ? a : b;
        System.out.println(max); // 10000
    }
}

案例 求三个整数的最大值

需求:定义三个整数,找出最大值并打印在控制台。

public class OperatorDemo8 {
    public static void main(String[] args) {
        /**
         分析:
             用三元运算符获取前两个整数的最大值,并用临时变量保存起来。
                num1 > num2 ? num1 : num2;
            用三元运算符,让临时最大值,和第三个整数,进行比较,并记录结果。
                temp > num3 ? temp : num3;
             输出结果
         */
        int i = 10;
        int j = 30;
        int k = 50;
        // 1、找出2个整数的较大值
        int temp = i > j ? i : j;
        // 2、拿临时变量与第三个变量的值继续比较
        int rsMax = temp > k ? temp : k;
        System.out.println(rsMax); // 50
		
        // 三元运算符的嵌套
        System.out.println("-------------拓展知识-------------");
        /*
             i > j
                    true   i > k ? i : k  如果 i > j 成立   比较 i 和 k 的大小
                    false  j > k ? j : k  如果 i > j 不成立 比较 j 和 k 的大小

        * */
        int rsMax1 = i > j ? (i > k ? i : k) : (j > k ? j : k);
        System.out.println(rsMax1); // 50
    }
}

运算符优先级

在表达式中,哪个运算符先执行后执行是要看优先级的,例如 “*、/” 的优先级高于”+、-”。

案例技术:键盘录入

需求:

请完成Java程序与用户交互,比如录入用户输入的名称、年龄,怎么办?。

API(Application Programming Interface,应用程序编程接口)

  • Java写好的程序(功能代码),咱们可以直接调用。

  • Oracle也为Java写好的程序提供了相应的API文档(技术使用说明书)。

键盘录入功能实现的三个步骤

注意:

  • System、String在JDK中的Java.lang包下

  • lang包不需要我们导包,是默认的包。

// 1、导包操作 (并不需要自己写的,以后通过工具进行导入更方便)
public class ScannerDemo {
    public static void main(String[] args) {
        // 目标:接收用户的键盘输入的数据。
        // 2、得到一个键盘扫描器对象
        Scanner sc = new Scanner(System.in);

        System.out.println("请您输入您的年龄:");
        // 3、等待接收用户输入一个整数,按了回车键才会把数据交给age变量
        int age = sc.nextInt();
        System.out.println("您的年龄是:" + age);

        System.out.println("请您输入您的名称:");
        // 4、等待接收用户输入一个字符串,按了回车键才会把数据交给name变量
        String name = sc.next();
        System.out.println(name + "欢迎进入系统!");
    }
}

总结:

API是什么?

  • Application Programming Interface,应用程序编程接口。

  • Java写好的程序,咱们可以直接调用。

键盘录入的开发步骤导包:

  • import java.util.Scanner;
  • 抄写代码得到扫描器对象:Scanner sc=new Scanner(System.in)
  • 抄写代码等待接收用户输入的数据:sc.nextlnt()、sc.next()

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java设计模式之单例模式

    java设计模式之单例模式

    这篇文章主要为大家详细介绍了java设计模式之单例模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • 探索Java中的IP属地获取技术

    探索Java中的IP属地获取技术

    这篇文章主要为大家介绍了Java中的IP属地获取的技术探索,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • Java 实战项目锤炼之网上商城系统的实现流程

    Java 实战项目锤炼之网上商城系统的实现流程

    读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用Java+jsp+servlet+mysql+ajax实现一个网上商城系统,大家可以在过程中查缺补漏,提升水平
    2021-11-11
  • Spring Cache和Redis 声明式缓存指南(最新推荐)

    Spring Cache和Redis 声明式缓存指南(最新推荐)

    文章主要介绍了Spring Cache和Redis在高并发Web应用中的作用和使用方法,文章也讨论了缓存的高级特性,如缓存失效策略、SpEL表达式应用、条件缓存等,感兴趣的朋友跟随小编一起看看吧
    2026-01-01
  • Java面向对象编程中final关键字的使用方法详解

    Java面向对象编程中final关键字的使用方法详解

    这篇文章主要介绍了Java面向对象编程中final关键字的使用方法详解,包括对内部匿名类无法访问外面的非 final 的变量问题的解读,需要的朋友可以参考下
    2016-06-06
  • java算法题解LeetCode35复杂链表的复制实例

    java算法题解LeetCode35复杂链表的复制实例

    这篇文章主要为大家介绍了java算法题解LeetCode35复杂链表的复制实例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • Spring Boot2.x集成JPA快速开发的示例代码

    Spring Boot2.x集成JPA快速开发的示例代码

    这篇文章主要介绍了Spring Boot2.x集成JPA快速开发,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • java 算法之希尔排序详解及实现代码

    java 算法之希尔排序详解及实现代码

    这篇文章主要介绍了java 算法之希尔排序详解及实现代码的相关资料,需要的朋友可以参考下
    2017-03-03
  • Maven 依赖发布与仓库治理的过程解析

    Maven 依赖发布与仓库治理的过程解析

    这篇文章主要介绍了Maven 依赖发布与仓库治理的过程解析,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2025-05-05
  • java语言自行实现ULID过程底层原理详解

    java语言自行实现ULID过程底层原理详解

    这篇文章主要为大家介绍了java语言自行实现ULID过程底层原理详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10

最新评论