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);
    }
}

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);// 拆开写,就需要自己转换
    }
}

2.3 关系运算

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

> 大于
< 小于
>= 大于等于
<= 小于等于
== 相等
!= 不等

关系运算的结果是布尔值,只有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
    }
}

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
    }
}

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

 		// 当第一个表达式能决定整体结果时,后面表达式短路不执行
        /**
         * & 一错就错,全对才对
         * && 短路与,当前面表达式结果是错的时候,后面不再执行
         */
        System.out.println(1 < 0 && 1/0==1 );


        /**
         * | 一对就对,全错才错
         * || 前面表达式结果是对,那么后面不执行
         */
        System.out.println(1 > 0 || 1/0 == 0);

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 );
    }
}

三、键盘录入

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

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


实现键盘录入,需要使用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 );
    }
}

四、练习 [重点]

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

附录

sum 和

duplicate 丢普雷k特

number,简写num 数字

result 结果

scan 扫描

scanner 扫描器

next 下一个

import 导入

length 长度

area 面积

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值