java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java算数运算符 加减乘除取余

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

作者: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

    }
}

总结:

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

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

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

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

    }
}

总结:

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

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

三元运算符

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,应用程序编程接口)

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

注意:

// 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是什么?

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

总结

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

您可能感兴趣的文章:
阅读全文