day03_运算符_scanner

零、今日内容

1.运算符
2.scanner
3.练习[重点]

复习

过电影(回忆一天讲的内容)

byte8位 short16位 int32位 long64位

float32位 double 64位


1.声明(定义)变量的语法格式

  • 数据类型 变量名;

2.写出所有基本数据类型

  • byte,short,int,long
  • float,double
  • boolean
  • char

3.类名,变量名的命名规范

  • 类名: 首字母大写,见名知意
  • 变量: 首字母小写,见名知意

4.代码的执行顺序

  • (宏观)编写代码,编译代码,执行代码
  • 具体的代码内部去看,如何执行?
  • 从main方法开始执行,在主方法内部从上至下,逐行执行

5.数据类型转换的原则

  • 小向大默认进行
  • 大向小强制进行
  • int变量转成char类型需要强制进行!!
  • char变量转成int类型默认 进行!!

一、运算符

之前讲的数据类型+变量名;

  • 数据类型定义变量数据的性质
  • 变量是存储数据

定义好变量后,就需要对其运算使用!


运算符号有哪些?

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

1.1 算术运算

算术运算就是常见的数学运算

+ - * /(除) %(取余)  ++(自增) --(自减)
package com.qf;

/**
 * --- 天道酬勤 ---
 *
 * @author QiuShiju
 * @date 2024/2/21
 * @desc 算术运算
 *
 * 运算符有执行顺序
 * 先乘除后加减
 * 有括号先算括号里面的!
 *
 */
public class Demo1 {

    public static void main(String[] args) {

        /**
         * + 加法
         * 1) 数字相加
         * 2) 遇到字符串后续全部拼接
         */
        int a = 1;
        int b = 2;
        int c = a + b;// 数字做加法
        System.out.println(c );
        System.out.println(1 + 1 + "1" + 1 + 1 );
        System.out.println("a + b = " + c );

        String name = "ClearLove";
        int age = 31;
        double salary = 10000.0;// 薪水
        String address = "上海";
        System.out.println("姓名:"+name+",年龄:"+age+",薪水:"+salary+",战队地址:"+address );

        /**
         * - 减法
         * 1) 只能做数字相减
         */
        System.out.println(10 - 11 );
        int d = 2;
        int e = 3;
        System.out.println(d - e );

        /**
         * * 乘法
         * 1) 只能数字相乘
         */
        int f = 2;
        double g = 3.0;
        System.out.println("2 * 3.0 = " + f * g);// 6.0

        /**
         * /除法
         * 1) 只能数字相除
         * 2) 整数相除结果取整,舍弃小数,不是四舍五入
         */
        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 / 3 );

        /**
         * % 取余
         * 1) 两数相除的余数
         * 2) 常用场景就是判断奇偶性
         */
        System.out.println(10 % 3 );// 余1
        System.out.println(10 % 2 );// 余0
    }
}

自增自减

/**
         * ++ 自增1
         * -- 自减1
         */
        int i = 1;
        i++; // 自增1
        System.out.println(i );//2

        int x = 1;
        int y = x++; // ++在后,先使用后自增
        System.out.println("x = " + x );// 2
        System.out.println("y = " + y );// 1

        int x2 = 1;
        int y2 = ++x2; // ++在前,先自增后使用
        System.out.println("x2 = " + x2 );// 2
        System.out.println("y2 = " + y2 );// 2

练习

  public static void main(String[] args) {

        int a = 5;
        int b = ++a;
        System.out.println(a); // 输出什么?
        System.out.println(b); // 输出什么?

        int x = 10;
        int y = x--;
        System.out.println(x); // 输出什么?
        System.out.println(y); // 输出什么?

        int m = 3;
        int n = m++;
        System.out.println(m); // 输出什么?
        System.out.println(n); // 输出什么?

        int p = 8;
        int q = --p + p++;
        System.out.println(p); // 输出什么?8
        System.out.println(q); // 输出什么?14
    }

总结

  • ++在后,先使用后自增
  • ++在前,先自增后使用

1.2 赋值运算

赋值就是 = ,将值赋值给变量的过程

= , += , -= , *= . /=
package com.qf;

/**
 * --- 天道酬勤 ---
 *
 * @author QiuShiju
 * @date 2024/2/21
 * @desc 赋值运算
 */
public class Demo3 {

    public static void main(String[] args) {
        /**
         * = 赋值运算
         * 将右边的数据赋值给左边变量
         */
        int a = 1;// 将1赋值给变量a
        int b = a;// 将变量a赋值给变量b

        /**
         * += 相加后再赋值
         * 1) 简化写法
         * 2) 可以默认进行类型转换,不需要强制转换
         */
        int c = 1;
        c += 2;// 相当于  c = c + 2
        System.out.println("c = " + c );

        short s = 1;
        // s += 2; // 默认转换,写法简单

        // 类型不同的数据运算后,结果会向大的转换
        s = (short)(s + 2);
        System.out.println(s );
    }
}

1.3 关系运算

关系运算主要是指数据之间的大小相等关系

> >= < <= ==(相等) !=(不等)

关系运算完的结果是布尔值: true,false

package com.qf;

/**
 * --- 天道酬勤 ---
 *
 * @author QiuShiju
 * @date 2024/2/21
 * @desc 关系运算
 */
public class Demo4 {
    public static void main(String[] args) {
        int a = 1;
        int b = 2;
        int c = 1;
        // 关系运算完的结果是布尔值: true,false
        System.out.println(a > b );// false
        System.out.println(a == b );// F
        System.out.println(a == c );// 判断是否相等 T
        System.out.println(a != c );// 判断是否不相等 F
        // 字符串只能判断相等和不等,不能比较大小
        System.out.println("a" ==  "a" );
        System.out.println("a" !=  "b" );
    }
}

这些关系运算将来常用于if,for等语句中

1.4 逻辑运算

逻辑运算就是: 与&,或|,非!

package com.qf;

/**
 * --- 天道酬勤 ---
 *
 * @author QiuShiju
 * @date 2024/2/21
 * @desc 逻辑运算
 */
public class Demo5 {

    public static void main(String[] args) {
        /**
         * & 与,和的意思
         * 写法:
         *   boolean 变量 = 布尔表达式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("--- 华丽分割线 ---" );

        /**
         * | 或
         *  一对就对,全错才错
         *
         *  简单点总结,有一个条件成立,结果就对!!
         */
        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("--- 华丽分割线 ---" );

        /**
         * ! 非,取反
         * 颠倒黑白,对true和false取反的
         */
        System.out.println(!true );// false
        System.out.println(!(1 < 0) );// true
    }
}

&和|可以升级使用: 短路与&&,短路或||

/**
         * && 短路与
         *   因为一错就错,全对才对
         *   所以,当第一个式子结果为错的时候,已经能够决定整体结果时,
         *   后续的式子不再执行,即短路了
         */
        int i = 1;
        // System.out.println(1 < 0 && ++i > 0 );
        // System.out.println(i );

        System.out.println(1 < 0 && 1/0>0 );
        // 因为1<0结果为false,所以&&就短路了后面代码不再执行

        /**
         * ||
         *  或运算是一对就对,全错才错
         *  如果第一个式子是对的话,后面式子不执行
         */
        System.out.println(1 > 0 || 1/0>0 );
        // 因为1>0结果为true,所以||就短路了后面代码不再执行

要求: 以后写代码遇到逻辑运算的,统一使用&&,||

1.5 三目运算

三目运算,就是三元运算,语法

数据类型 变量名 = 布尔表达式 ? 前面对执行此处 :  前面错执行此处;
   public static void main(String[] args) {

        int a = 1 > 0 ? 1 : 0;
        System.out.println(a );

        int x = 1;
        int y = 2;
        String s = x > y ? "x大于y" : "x不大于y";
        System.out.println(s );
    }

image-20240221150507476

练习

设置两个数字,获得较大的数字并输出出来。(不考虑相等)

		// 设置两个数字,获得较大的数字并输出出来。(不考虑相等)
        int i = 11;
        int j = 2;
        String r1 = i > j ? "i大,i="+i : "j大,j="+j;
        System.out.println(r1 );

设置两个数字,将其比较的结果输出(a>b,a<b,a==b)

        // 设置两个数字,将其比较的结果输出(a>b,a<b,a==b)
        int a = 3;
        int b = 3;
        String r2 = (a > b) ? ("a > b"): (a < b ? "a < b" : "a == b");
        System.out.println(r2 );

二、Scanner

2.1 介绍

以前写的题目,数据都是固定写死的,没有交互性.

使用Scanner就可以做到从外部输入数据,再通过运算 出结果.

2.2 使用[固定格式]

  • 先导包
  • 创建Scanner对象
  • 调用方法
  • 键盘输入
  • 获得数据
  • 进行运算

image-20240221160557350

三、练习

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

编写一个程序,从用户输入的两个数字中获得较大的数字并显示出来。

package com.qf.lianxi;

import java.util.Scanner;

/**
 * --- 天道酬勤 ---
 *
 * @author QiuShiju
 * @date 2024/2/21
 * @desc 练习题1
 */
public class Demo8 {

    // 编写一个程序,从用户输入的两个数字中获得较大的数字并显示出来。
    // ps: 不考虑相等的情况
    public static void main(String[] args) {
        System.out.println("--- 比较两数大小 ---" );

        Scanner scanner  = new Scanner(System.in);

        System.out.println("请输入第一个数字a:" );
        int a = scanner.nextInt();

        System.out.println("请输入第二个数字b:" );
        int b = scanner.nextInt( );

        String r =  a > b?"a大,a="+a:"b大,b="+b;
        System.out.println("结果: "+ r );
    }
}

编写一个程序,从用户输入的三个数字中找到最小的数字并显示出来。(不考虑相等)

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入第一个数字a:");
        int a = scanner.nextInt( );

        System.out.println("请输入第二个数字b:");
        int b = scanner.nextInt( );

        System.out.println("请输入第三个数字c:" );
        int c = scanner.nextInt( );

        String s = (a < b) ? (a < c ? "a小,a=" + a : "c小,c=" + c) : (b < c ? "b小,b=" + b : "c小,c=" + c);
        System.out.println("结果是:" + s );

    }

编写一个程序,计算用户输入的3个数字的平均值并显示出来。

 public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入第一个数字a:");
        int a = scanner.nextInt( );

        System.out.println("请输入第二个数字b:");
        int b = scanner.nextInt( );

        System.out.println("请输入第三个数字c:" );
        int c = scanner.nextInt( );

        // 计算用户输入的3个数字的平均值并显示出来。
        double avg = (a + b + c) / 3.0;
        System.out.println("三个数平均数:" + avg );
    }

编写一个程序,从用户输入的摄氏温度中将其转换为华氏温度,并显示结果
F = C × 1.8 + 32。

   public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入摄氏温度:");
        double c = scanner.nextDouble( );

        double h = c * 1.8 + 32;
        System.out.println("摄氏温度"+c+"度 = " + h+"华氏度" );
    }

四、总结

运算符

  • 算术
    • 正常用
    • 特殊的: / ,整数相除取整, ++和-- 注意前+还是后+(i++,++i)
  • 赋值
    • 特殊的+= , 好处是默认进行类型转换
  • 关系
    • 一般用在后面if,for中
  • 逻辑
    • && 和,一错就错全对才对
    • || 或,一对就对,全错才错
    • 建议使用短路&&,||
  • 三目
    • 后续使用的都是最简单的方式,不会嵌套
    • 多条件判断的建议使用if-else

Scanner

  • 不需要特别深究,能用就行,固定格式

要求:

  • 重复(模仿,照抄)2遍
    • 课上知识点
    • 重点是题目
  • 作业
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值