• day04_运算符


    今日内容

    零、 复习昨日
    一、运算符
    二、键盘录入
    三、练习

    零、 复习昨日

    学习方法: 画面记忆, 过电影回忆

    注意变量写法:

    • 数据类型 变量名 = 值;
    • 常用类型 int,double

    类型转换

    • 小向大 默认
    • 大向小 强制

    一、作业

    写题技巧

    • 程序题,没有"标准答案", 只要结果符合预期

    • 程序是调试出来的,不可能一次写对,边写边试

    • 一定要去试着写,不能光看,根据错误的结果修正代码

    • 要读代码,按照执行顺序读

    • “法无禁止皆可行” - “无所不用其极” - 大胆使用所学技术去试,新加内容变量等都可以,只要结果对

    二、运算符

    前提是得知道数据,变量,数据类型等知识

    运算符

    • 算术运算
    • 赋值运算
    • 关系运算
    • 逻辑运算
    • 三目运算

    2.1 算术运算

    算术运算就是数学运算: + - *(乘) /(除) %(取余) ++(自增) --(自减)

    package com.qf.operation;
    
    /**
     * --- 天道酬勤 ---
     *
     * @author QiuShiju
     * @desc 算术运算
     */
    public class Demo1 {
    
        public static void main(String[] args) {
            /**
             * 算术运算符号
             * + - * /
             * % ++ --
             */
            /**
             * + 加法
             * 1) 数字相加,
             *    如果两边数字类型不一致,相加结果数据类型跟大范围的一致
             * 2) 做字符串连接
             */
            System.out.println(1 + 1 );// 常量相加
    
            int sum1 = 2 + 2;// 常量相加赋值给变量
            System.out.println(sum1 );
    
            int a = 3; // 声明两个变量
            int b = 3;
            int sum2 = a + b; // 变量相加
            System.out.println(sum2 );
    
            // 两边数字类型不一致,相加结果数据类型跟大范围的一致
            System.out.println(1 + 1.1 );// 2.1
            int a2 = 2;
            double b2 =2.2;
            double sum3 = a2 + b2;
            System.out.println(sum3 );// 4.2
    
            // 加号可以做字符串连接
            System.out.println("sum3 = " + sum3 );
            // 前两个是数字相加结果是2
            // 第三个1是字符串,就会拼接成"21"
            // 只要遇到字符串,往后加法都是拼接
            System.out.println(1 + 1 + "1" + 1 + 1 + 1 );// 21111
            // ============================================
            /**
             * - 减法
             * 只能做数字相减
             */
            System.out.println(1 - 1);
            int a3 = 2;
            int b3 = 1;
            System.out.println(a3 - b3 );
            // ============================================
            /**
             *  *乘法
             * 只能数字相乘
             */
            System.out.println(2 * 6 );
            int a4 = 2;
            double b4 = 2.2;
            System.out.println(a4 * b4 );
    
            // ============================================
            /**
             *  / 除法
             *  1)只能两数相除
             *  2)除法如果两边都是整除,结果只能是整数,舍弃小数取值
             *  3)数学常识,0不能做除数(分母)
             */
            System.out.println(10 / 2 );// 5
            System.out.println(10 / 2.0 );// 5.0
            System.out.println(10 / 3 );// 3
            System.out.println(10 / 4 );// 2
            // System.out.println(10 / 0 ); // 有bug,即异常
    
            // ============================================
            /**
             * 取余 %
             * 除不尽的余数
             * -----
             * 场景: 判断奇偶性
             */
            System.out.println(10 % 2 );// 0
            System.out.println(10 % 3 );// 1
    
            /**
             * 153,分别获得百位的1,十位5,个位3
             */
            int num = 153;
            int ge = num % 10;
            int shi = num / 10 % 10;
            int bai = num / 100;
            System.out.println("个位:" +  ge);
            System.out.println("十位:" +  shi);
            System.out.println("百位:" +  bai );
            // ============================================
            /**
             * ++ 自增1
             * -- 自减1
             */
            int i = 1;
            i++;
            System.out.println(i );
    
            /**
             * 谁在前先用谁
             * ------------
             * ++在后,先使用后自增
             * ++在前,先自增后使用
             */
            int x = 1;
            int r = x++;
            System.out.println("r = " + r );// 1
            System.out.println("x = " + x );// 2
    
    
            int y = 1;
            int r2 = ++y;
            System.out.println("r2 = " + r2 );// 2
            System.out.println("y = " + y );// 2
    
            // ==================================
            int q = 10;
            int w = 10;
            int e = 10;
            q = w++;// q10 w11
            e = --q;// q9 e9
            w = ++q;// q10 w10
            q = e--;// q9 e8
            System.out.println("q = "+q);
            System.out.println("w = "+w);
            System.out.println("e = "+e);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136

    2.2 赋值运算

    赋值运算: 将一个值赋值给另外一个变量

    • =
    • -= , += , *= , /=
    • int a = 1; // 将值1赋值给a变量
    • int b = a;// 将变量a的值赋值给b变量
    package com.qf.operation;
    
    /**
     * ---      天道酬勤    ---
     * --- 代码敲烂 月薪过万 ---
     *
     * @author QiuShiju
     * @desc
     */
    public class Demo2 {
    
        public static void main(String[] args) {
            /**
             * 赋值运算
             * 右边赋值给左边
             */
            int a = 1; // 1赋值给a
            System.out.println("a = " + a);
    
            int b = a;// 将a变量的值赋值给b
            System.out.println("b = " + b);
    
            /**
             * += , -= , *= , /=
             * 相当于是拆开,先运算再赋值c = c + 2
             * 有好处
             *  1) 简单
             *  2) 会默认进行类型转换
             */
            int c = 1;
            c += 2;// 相当于是c = c + 2
            System.out.println("c = " + c);
    
            short s = 1;
            s += 1; // 默认类型转换
            s = (short)(s + 1);// 拆开写,就需要自己转换
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38

    2.3 关系运算

    关系运算,就是两个数字直接比大小

    > 大于
    < 小于
    >= 大于等于
    <= 小于等于
    == 相等
    != 不等
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    关系运算的结果是布尔值,只有true,false

    package com.qf.operation;
    
    /**
     * ---      天道酬勤    ---
     * --- 代码敲烂 月薪过万 ---
     *
     * @author QiuShiju
     * @desc 关系运算
     */
    public class Demo3 {
    
        public static void main(String[] args) {
            /**
             * > 大于
             * < 小于
             * >= 大于等于
             * <= 小于等于
             * == 相等
             * != 不等
             * 关系运算的结果是布尔值,只有true,false
             */
            System.out.println(1 > 0 );// true
            System.out.println(1 < 0 );// false
            int a = 1;
            int b = 2;
            System.out.println(a > b );// false
            System.out.println(a < b );// true
    
            int c = 2;
            int d = 2;
            boolean r = c == d;
            System.out.println(r );// true
    
            boolean r2 = c != d;
            System.out.println(r2 );// false
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    2.4 逻辑运算

    逻辑运算

    • 与 & , 2个必须满足
    • 或 | , 二选一满足
    • 非 ! , 取反
    • 短路与 &&
    • 短路或 ||

    基础&(与) |(或) !(非) 演示

    package com.qf.operation;
    
    /**
     * ---      天道酬勤    ---
     * --- 代码敲烂 月薪过万 ---
     *
     * @author QiuShiju
     * @desc 逻辑运算
     */
    public class Demo4 {
    
        public static void main(String[] args) {
    
            /**
             * 逻辑运算是与关系运算一起使用的:
             *  逻辑运算的符号两边是关系运算
             * 逻辑运算的结果是true和false
             *-----------------------------------
             * & 与,和
             * 语法:
             *       a>b  & c>d
             * 布尔表达式1 & 布尔表达式2
             * 作用:
             *  两边布尔表达式一错,整体就是错,两边都对整体才是对
             *  一错就错全对才对
             */
            System.out.println(1 > 0 & 1 > 0 );// T & T = T
            System.out.println(1 > 0 & 1 < 0 );// T & F = F
            System.out.println(1 < 0 & 1 > 0 );// F & T = F
            System.out.println(1 < 0 & 1 < 0 );// F & F = F
    
            System.out.println("------------------" );
            /**
             *  | 或
             *语法
             *  布尔表达式1 | 布尔表达式2
             *作用
             *  一对就对,全错才错
             */
            System.out.println(1 > 0 | 1 > 0 );// T | T = T
            System.out.println(1 > 0 | 1 < 0 );// T | F = T
            System.out.println(1 < 0 | 1 > 0 );// F | T = T
            System.out.println(1 < 0 | 1 < 0 );// F | F = F
            System.out.println("------------------" );
    
            /**
             * !非
             * 语法:
             *   !布尔表达式
             * 作用:
             *   将表达式结果取反
             */
            System.out.println(!true ); // false
            System.out.println(!(1 > 0) );// false
            System.out.println(!(1 > 0 & 1 < 0) );// true
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57

    短路与、短路或 演示 [重点]

     		// 当第一个表达式能决定整体结果时,后面表达式短路不执行
            /**
             * & 一错就错,全对才对
             * && 短路与,当前面表达式结果是错的时候,后面不再执行
             */
            System.out.println(1 < 0 && 1/0==1 );
    
    
            /**
             * | 一对就对,全错才错
             * || 前面表达式结果是对,那么后面不执行
             */
            System.out.println(1 > 0 || 1/0 == 0);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    2.5 三目运算

    数据类型 变量 = 布尔表达式 ? true时执行 : false时执行;

    • 执行顺序
      • 先执行表达式
      • 再根据对错执行
        • 如果表达式是对(true),就执行冒号前面
        • 如果表达式是错(false),就执行冒号后面
    package com.qf.operation;
    
    /**
     * ---      天道酬勤    ---
     * --- 代码敲烂 月薪过万 ---
     *
     * @author QiuShiju
     * @desc
     */
    public class Demo5 {
    
        public static void main(String[] args) {
            /**
             * 数据类型 变量 = 布尔表达式 ? true时执行 : false时执行;
             *
             * - 执行顺序
             *   - 先执行表达式
             *   - 再根据对错执行
             *     - 如果表达式是对(true),就执行冒号前面
             *     - 如果表达式是错(false),就执行冒号后面
             */
            int r1 = 1 > 0 ? 1 : 0;
            System.out.println(r1 );
    
            String s1 = 1 > 0 ? "1大" : "0大";
            System.out.println(s1 );
    
            // 比较两数大小,输出最大的
            int a = 2;
            int b = 2;
            String r2 = a > b ? "a大a="+a : "b大b="+b;
            System.out.println(r2 );
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    三、键盘录入

    因为以前练习时的数据都是固定的写死的,无交互性

    使用键盘录入就可以实现从外界将数据输入到程序


    实现键盘录入,需要使用Java自带的Scanner功能,使用步骤

    • 创建Scanner对象
    • 导入Scanner包
    • 调用方法完成输入
    • 接收输入的数据

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    package com.qf.scanner;
    
    // 2导包
    import java.util.Scanner;
    public class Demo6 {
        public static void main(String[] args) {
            // 1创建Scanner对象[固定步骤]
            Scanner scanner = new Scanner(System.in);
    
            // 3调用方法完成输入
            // next()和nextLine() 输入字符串
            // nextInt() 输入整型
            // nextDouble() 输入小数
            System.out.println("请输入整数:" );
            int a = scanner.nextInt();
            // a就是接收到的输入的值
            System.out.println("输入的是: "+a );
    
            System.out.println("请输入字符串:" );
            String str = scanner.next( );
            System.out.println("输入的是: "+str );
    
    
            System.out.println("请输入小数:" );
            double d = scanner.nextDouble( );
            System.out.println("输入的是: "+d );
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    四、练习 [重点]

    编写一个程序,从用户输入的两个数字中获得较大的数字并显示出来。
    编写一个程序,从用户输入的三个数字中找到最小的数字并显示出来。
    编写一个程序,计算用户输入的3个数字的平均值并显示出来。
    编写一个程序,接收用户输入的半径,并计算圆的面积和周长。
    编写一个程序,从用户输入的摄氏温度中将其转换为华氏温度,并显示结果。
    编写一个程序,计算一个数的平方和立方,并将结果显示出来。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    附录

    sum 和

    duplicate 丢普雷k特

    number,简写num 数字

    result 结果

    scan 扫描

    scanner 扫描器

    next 下一个

    import 导入

    length 长度

    area 面积

  • 相关阅读:
    智能优化算法:孔雀优化算法-附代码
    Michael Abrash‘s Graphics Programming Black Book--chapter3综计器
    vue2_路由04_编程式路由导航push与replace
    Vue.js 框架源码与进阶 - Vue.js 3.0 响应式系统原理
    vuex---$store案例
    人工智能生成 logo 神器
    VAD打断方案
    数据结构——栈
    挑战52天背完小猪佩奇(第04天)
    php对接微信支付-详细教学
  • 原文地址:https://blog.csdn.net/weixin_39641494/article/details/133180104