Java 第二天(纯干货)(带你14天了解并掌握Java SE)

今日内容

  • 运算符
  • 键盘录入
  • 选择流程控制语句

01. 算术运算符的基本用法

  • 运算符
    • 对常量和变量进行操作的符号
  • 表达式
    • 用运算符把常量或者变量连接起来符号,符合java语法的式子就可以称为表达式。

问题:

  • 运算符的分类?
  • 算数运算符有哪些?
总结:
    1:
        算数运算符(自增自减运算符)
        赋值运算符       
        关系运算符[比较运算符]
        逻辑运算符
        三元运算符[三目运算符]

    2: +  -  *
       /  %  ++ --

注意:
    整数相除结果只能是整数
    如果想计算出小数, 必须要有浮点类型数据参数运算
  • 算术运算符取余和除法的区别
    • / 得到的是商
    • % 得到的余数
        %运算符的应用场景:一般用于奇偶数的判断
                任何一个数%2,结果不是0,就是1

问题:

    12345 / 100 等于多少?   123

    12345 % 100 等于多少?   45

    12345 / 100 % 100 等于多少? 23

02. 字符和字符串参与加法操作

  • 思考: System.out.println('a' + 1); // 输出结果? 98

  • 注意: 当char类型再跟整数类型的数据进行运算的时候, 实际上是?

        找到底层的ASCII数值,然后再进行运算
  • 注意: 字符串在与任意数据类型用+号串联的时候都会 ?
        产生新的字符串
  • 问题:
    System.out.println(1 + 'a' + "hei hei hei" + 'a');  // 结果?  98hei hei heia
  • 转ppt中问答

03. 自增自减运算符的概述和用法

  • ++ -- 运算符的基本应用是?
  • 单独使用有什么效果?
  • 参与运算使用有什么效果?
总结:
    1: 就是完成数据自身+1,或者是自身-1的操作
    2: 单独使用的话,++在前还是在后,效果都是完成自身+1
            ++a;    a++;
    3:
        ++在后:先将变量原本记录的值,取出来,做相应的操作,然后再完成自身+1的动作。
            int x = 10;
            int y = x++;

        ++在前:先完成自身+1的动作,然后再进行赋值
  • 看程序写结果
看程序写结果
    int x = 10;

    int y = x++;        // y = 10,  x = 11;
    int z = ++x;        // x = 12;  z = 12;
    System.out.println(x);
    System.out.println(y);
    System.out.println(z);

    System.out.println("---------------");

    int x = 4;
        //   4 +  6 + 60
    int y = (x++)+(++x)+(x*10);

    System.out.println("x="+x);     // x=6
    System.out.println("y="+y);     // y=70

04. 赋值运算符的概述和用法

  • 赋值运算符有哪些?
  • 具体能完成什么操作?
总结:
    基本赋值运算符:  =

                    将等号右边的数据,赋值给左边

                    int a = 10;

    扩展赋值运算符:  

                    +=  -=  *=  /=  %=


                    += : 是将符号左右两边的数据,做加法运算,然后将结果赋值给左边

问题:
    下面的程序是否有问题,如果有问题,请指出并说明理由(必须掌握!!!!)

    short s=1;    
    s=s+1;      s是short类型,1是int类型,short和int相加的时候,会先将short提升为int
                 两个int相加的结果,还是int,把int结果赋值给short类型的变量,需要强转。     

    short s=1;
    s+=1;       原因:底层自动做了强制类型转换         s = (short)(s+1);   

05. 关系运算符(比较运算符)的基本用法和注意事项

  • 关系运算符有哪些? 分别有什么作用?
  • 其注意事项又是什么?
总结:
    1:   > < >= <=
         == !=


        比较运算符:无论简单还是复杂,结果都时boolean(true,false)

            == : 比较两个数是否相等
            != : 比较两个数是否不等

    2:

        =和==要区分明白

            =:赋值的
            ==:比较的

06. 逻辑运算符的概述和使用

  • 逻辑运算符用于链接boolean类型的表达式, 或者是值.
  • 逻辑运算符有哪些?
总结:

        &(与)  : 并且,当左右两边都为true的时候,结果才是true,换句话说,遇false则false 

        | (或)  : 或者,遇true则true

        ---------------------------------------

        !(非) : 取反




        && : 从最终结果来看,跟&的效果是一样的,也是与false则false,但是&&具有短路效果

                需求:判断学员成绩,如果分数在90-100之间,输出优秀

                int score = 100;
                如果(score >= 90 && score <= 100){
                        优秀
                }

        || : 遇true则true,也具备短路效果,当左边为true,右边就不执行了。

        ---------------------------------------------------

        ^(异或) : 了解

                现象: 相同为false,不同为true(处对象)


                特点:一个数,被另外一个数,异或两次,该数本身不变。


        面试题:实现两个变量的数值交换, 不允许定义三方变量

        public static void main(String[] args) {
            int a = 10;
            int b = 20;

            a = a ^ b;      // 10 ^ 20
            b = a ^ b;      // 10 ^ 20 ^ 20     --> 10
            a = a ^ b;      // 10 ^ 20 ^ 10     --> 20

            System.out.println(a);
            System.out.println(b);
        }




问题:
    && & 有什么区别?

    & : 无论左边返回的结果是true还是false, 右边都必须执行
    && : 左边返回false的时候, 右边就不再执行了.

    int x = 3;
    int y = 4;
    System.out.println((++x < 2) && (y++ > 5));  
    System.out.println("x:" + x);                
    System.out.println("y:" + y);                

07. 三元运算符的概述和使用

  • 三元运算符的格式为?
  • 其执行流程为?
总结:
    1: 
        (比较表达式) ?  值1:值2;

    2:

        1. 先执行比较表达式
        2. 看其结果是true还是false

                true : 执行值1
                false : 执行值2

08. 三元运算符之比较两个数据是否相同

  • 案例演示

09. Scanner录入数据的基本步骤

  • 为什么要有键盘录入?
    • 为了让程序更加的灵活,达到人机交互的效果
      • 想要实现键盘录入就需要Java已经写好的类,Scanner
  • 如何实现键盘录入?
总结:
    1: import java.util.Scanner;        // 导包

                                        // 导入包中的类,让java写好的类,和我们自己的类产生关联

    2: 创建Scanner对象, 简单来说就是创建了一个专门用于键盘录入的机器

         Scanner sc = new Scanner(System.in);

    3: 调用机器中的功能,做到键盘录入

        int num = sc.nextInt();

10. 键盘录入两个数据并求和

  • 案例演示
public class Demo2_Scanner {
    /*
     *  键盘录入两个数据并求和
     *  
     */
    public static void main(String[] args) {
        // 1. 创建Scanner键盘录入对象(机器)
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入两个整数:");

        // 2. 使用机器的功能,做两次键盘录入
        int num1 = sc.nextInt();
        int num2 = sc.nextInt();

        // 3. 求和
        System.out.println(num1 + num2);
    }
}

11. 流程控制语句之顺序结构概述和使用

  • 什么是流程控制语句?
  • 流程控制语句的分类有哪些?
总结:
    1: 控制程序的    -> 执行流程
    2: 

        顺序结构
        选择结构

            if

            switch

        循环结构    -> day03

12. if语句格式1的概述和使用

  • if语句有几种格式?
  • 格式1该如何书写?
  • 其执行流程为?
总结:
    1: 三种格式
    2:

        if(比较表达式){
            语句体;
        }


        if(考试考了100分){
            奖励100块钱
        }

    3:

        1. 执行表达式
        2. 看其结果是true还是false

                true : 执行语句体
                false : 不执行语句体

练习:

    键盘录入两个整数,使用if语句判断,如果这两个数相等就打印“这两个数相等”

注意事项:

    1.if语句的小括号后面,不要误写分号
    2.if语句的语句体,如果是一条语句,大括号可以省略不写,但不建议!

13. if语句格式2的概述和使用

  • 格式2
总结:

    if(比较表达式){
        语句体1;
    }else{
        语句体2;
    }   


举例: 
    if(考试考了100分){
        System.out.println("奖励100块钱");
    } else {
        System.out.println("挨顿揍");
    }

执行流程:

    1. 执行比较表达式
    2. 看其结果是true还是false

        true : 执行语句体1;
        false : 执行语句体2;


练习:
    键盘录入一个整数,使用if语句判断,如果这个数是偶数则打印这个数是偶数
    如果录入的数是奇数则打印这个数是奇数

14. if语句格式3的概述和使用

  • A:格式3
总结:
    if(比较表达式1) {
        语句体1;
    }else if(比较表达式2) {
        语句体2;
    }else if(比较表达式3) {
        语句体3;
    }
    ...
    else {
        语句体n+1;
    }


举例:
    if(考试考了100分){
        System.out.println("奖励100块钱");
    } else if(考试考了80) {
        System.out.println("奖励50块钱");
    } else if(考试考了60){
        System.out.println("这次就放过你");
    } else {
        System.out.println("挨顿揍");
    }
  • B:执行流程:
    • 首先计算比较表达式1看其返回值是true还是false,
    • 如果是true,就执行语句体1,if语句结束。
    • 如果是false,接着计算比较表达式2看其返回值是true还是false,
    • 如果是true,就执行语句体2,if语句结束。
    • 如果是false,接着计算比较表达式3看其返回值是true还是false,
    • 如果都是false,就执行语句体n+1。
  • C:注意事项:最后一个else可以省略,但是建议不要省略,可以对范围外的错误值提示

15. if语句实现获取两个整数的较大值

  • 需求: 键盘录入两个数据, 获取两个数据中的最大值
  • 分析:
    A:看到键盘录入,我们就应该想到键盘录入的三步骤
        导包,创建对象,接收数据
    B:获取这两个数据的较大值,其实就是判断两个数据谁大,把大的输出就可以了。

猜你喜欢

转载自blog.csdn.net/weixin_42261489/article/details/88074610