Java学习笔记2024/1/27

1. 运算符(还没学完,接2024/1/26笔记)

1.1 逻辑运算符

1.1.1 短路逻辑运算符

1.1.1.1 笔记地点: 项目 -> 模块 -> 包 -> 类

注释即笔记:
package com.itheima.Operator.logicalOperator;

public class logicalOperatorNote1 {
    public static void main(String[] args) {
        // 知识点: 运算符 -> 逻辑运算符 -> 短路逻辑运算符
        // 它们的符号: && ||
        // 它们的作用: 短路与 短路或
        // 说明: && 结果和&相同,但具有短路效果
        //      || 结果和|相同,但具有短路效果

        // 为什么有逻辑运算符的出现
        // 为了提高程序的运行效率

        // 它们的作用跟 & | 一样 (详情看 logicalOperatorNote 这个类)

        // 演示 1. 2. :

        // 1.&&  真真为真,其他全为假
        System.out.println(true && true);//真
        System.out.println(true && false);//假
        System.out.println(false && true);//假
        System.out.println(false && false);//假

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

        // 2.||  有真为真,全假为假
        System.out.println(true || true);//真
        System.out.println(true || false);//真
        System.out.println(false || true);//真
        System.out.println(false || false);//假

        // 在变量中,数据值一般只有一个,有运算符出现,基本多个,可能一个
        // 注意是可能哈,我还没想到在变量中有一个的例子
        // 举个例子
        // 这个是在变量中,使用变量间接打印  a = b + c;  -> 两个数据值 -> 打印 a
        // 这个是使用字面量直接打印  打印 !false  -> 一个数据值

        System.out.println("随便举个例子");
        int b = 15;
        int a; // 这就是数据类型定义变量,上面那行顺便赋了个值
        char c;
        a = b + 'c'; //字符要注意加单引号''
        System.out.println(a);

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

        // 短路逻辑运算符具有短路效果
        // 简单理解: 当左边确定结果(true 或 false),那右边就不运行了
        // && 左边false全false
        // || 左边true全true

        int q = 10;
        int w = 10;
        boolean re = q++ < 100 && ++w < 5; //boolean用来判断 re 输出true或false
        System.out.println(re);
        System.out.println(q);//  系统自动省略了一个步骤 q = q + 1;  单独使用的时候,不管先赋值q++,还是先自增++q,最终结果都要自增++赋值给自己成为一个新变量,只是新变量还是用原来的变量名
        System.out.println(w);
        // 单个(例如&)的不管左边啥结果(true 或 false),右边都要运行

        System.out.println("^^");
    }
}
1.1.1.2 笔记地点: 包 -> 类

注释即笔记:
package com.itheima.Operator.logicalOperator;

// 1.1自动导包
import java.util.Scanner;

public class logicalOperatorTest1 {
    public static void main(String[] args) {
        //运用学过的知识点做题
        
        /*数字6是一个真正伟大的数字,键盘录入两个整数。
        如果其中一个为 6,最终结果输出true。
        如果它们的和为 6的倍数。最终结果输出true。
        其他情况都是false。*/

        //键盘录入1.1 1.2 1.3
        // 在idea搞好了设置 先打1.2 1.1自动导包
        // 第一步 1.2
        Scanner sc = new Scanner(System.in);
        // 第二步 1.3 注意搞个提示
        System.out.println("请输入两个整数");
        int zhengshu1 = sc.nextInt();

        int zhengshu2 = sc.nextInt();

        boolean panduan1 = zhengshu1 == 6 || zhengshu2 ==6 ;//要用到赋值运算符
        System.out.println(panduan1);//ture 或 false

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

        boolean panduan2 = (zhengshu1 + zhengshu2) / 6 == 1;//在这费半天时间,我一直 ==0 服了... [看了讲解后: ==o是可以的,但是运算符用%]
        System.out.println(panduan2);//true 或 false

        System.out.println("------");
    }
}
1.1.1.3 笔记地点: 包 -> 类
注释即笔记:
package com.itheima.Operator.logicalOperator;

// 1.1自动导包
import java.util.Scanner;

public class logicalOperatorTest1_1 {
    public static void main(String[] args) {
        //修改后的代码

        // 键盘录入1.1 1.2 1.3
        // 在idea搞好了设置 先打1.2 1.1自动导包
        // 第一步 1.2
        Scanner sc = new Scanner(System.in);
        // 第二步 1.3 注意搞个提示
        System.out.println("请输入两个整数");
        int zhengshu1 = sc.nextInt();
        int zhengshu2 = sc.nextInt();

        boolean panduan = zhengshu1 == 6 || zhengshu2 == 6 || (zhengshu1 + zhengshu2) % 6 == 0;// 更简洁

        System.out.println(panduan);// ture 或 false
    }
}

2.1 三元运算符(从这开始又修改一下笔记风格,因为做笔记也要不断创新,不断进步)

2.1.1 三元运算符基本概念

笔记地点:

注释即笔记:
package com.itheima.Operator.ternaryOperator;

import java.util.Scanner;

public class ternaryOperatorNote1 {
    public static void main(String[] args) {
        // 知识框架: 运算符 -> 三元运算符
        // 三元运算符也叫三元表达式,就是说它是个表达式
        // 格式: 关系表达式? 表达式1: 表达式2;

        // 范例: 求两个数的较大值
        // int max = a > b ? a : b;
        // 把三元运算符的结果赋值给一个变量
        // 说明后边那一大串,即格式,最终会计算出一个数值

        // 可以直接用 -> 字面量 -> 直接打印
        // System.out.println(a > b ? a : b);

        // 可以间接用 -> 变量 -> 赋值给一个变量名(数据类型定义变量名)然后打印变量名
        // int max = a > b? a : b;
        // System.out.println(max);

        // 演示
        // 需求:键盘录入,使用三元运算符,获取两个数的较大值
        // 问题就是答案,看这句话: 获取两个数的较大值
        // 说明它的输出结果是后面两个数据值中的一个
        // 但是要注意与最前面的运算结果true 或 false一一对应
        // true对应第一个
        // false对应第二个
        Scanner scanner = new Scanner(System.in);
        System.out.println("输俩数");
        int a = scanner.nextInt();
        int b = scanner.nextInt();

        System.out.println(a > b ? b : a);//a > b ? a : b;

        int c = a > b ? a : b;
        System.out.println(c);


        System.out.println("^^");
    }
}

2.1.2 运用三元运算符做题

笔记地点:

题目一   动物园里有两只老虎,体重分别为通过键盘录入获得,
              请用程序实现判断两只老虎的体重是否相同。
第一篇代码运用以前的知识点解决---运用关系运算符直接打印
package com.itheima.Operator.ternaryOperator;

import java.util.Scanner;

public class ternaryOperatorTest1 {
    public static void main(String[] args) {
    /* 需求:动物园里有两只老虎,体重分别为通过键盘录入获得,
    请用程序实现判断两只老虎的体重是否相同。*/
        Scanner scanner = new Scanner(System.in);
        System.out.println("输入两只老虎的体重");
        int tiger1 = scanner.nextInt();
        int tiger2 = scanner.nextInt();
        System.out.println(tiger1 -= tiger2);//运算符直接打印就直接计算或者输出true 或 false,所以要注意用的运算符符号
        System.out.println(tiger1 > tiger2);
        System.out.println("上面答案是以前知识点复盘,这题答案看下面这一步");
        System.out.println(tiger1 == tiger2);

        System.out.println("^^");
    }
}

第一篇代码写完分析:

第一篇代码运用以前的知识点解决---运用关系运算符直接打印

结果有局限

只能输出true或者false

但想看到相同或不同这样的中文

因此第二篇代码做了改进

也就是运用了三元运算符

第二篇代码运用三元运算符解决
package com.itheima.Operator.ternaryOperator;

import java.util.Scanner;

public class ternaryOperatorTest1_1 {
    public static void main(String[] args) {
    /* 需求:动物园里有两只老虎,体重分别为通过键盘录入获得,
    请用程序实现判断两只老虎的体重是否相同。*/
        Scanner scanner = new Scanner(System.in);
        System.out.println("输入两只老虎的体重");
        int tiger1 = scanner.nextInt();
        int tiger2 = scanner.nextInt();

        String re = tiger1 == tiger2 ? "相同" : "不同";// 既然用到String字符串类型,输出的数据值就要用到双引号""
        System.out.println(re);

        System.out.println("^^");
    }
}

题目二   一座寺庙里住着三个和尚,已知他们的身高分别为150cm、210cm、165cm,
              请用程序实现获取这三个和尚的最高身高。

分析: 有三个数据值的时候,要用到一个转换器,联想到三个杯子那个例子,但只有一部分相似,因为那个是赋值转换。

学到一个快捷键知识: Ctrl + Alt + L idea里面代码自动对齐

package com.itheima.Operator.ternaryOperator;

public class ternaryOperatorTest2 {
    public static void main(String[] args) {
         /* 需求:一座寺庙里住着三个和尚,已知他们的身高分别为150cm、210cm、165cm,
        请用程序实现获取这三个和尚的最高身高。*/
        int a = 150;
        int b = 210;
        int c = 165;

        // 需要一个转换器 随便一个变量名 z
        int z = a > b ? a : b;// 翻译一下: 如果a比b高正确,输出第一个值,如果a比b高错误,输出第二个值。问号前面是判断语句不是值,问号后面才是值
        int re = c > z ? c : z;// 这里不用纠结冒泡排序那些问题,因为这题我们最终只求最高的那个,不需要求第二高
        System.out.println(re);// 结果它不输出变量名,输出的是数据值
        
        System.out.println("^^");
    }
}

错题:

package com.itheima.Operator.logicalOperator;

// 1.1自动导包
import java.util.Scanner;

public class logicalOperatorTest1 {
    public static void main(String[] args) {
        //键盘录入1.1 1.2 1.3
        // 在idea搞好了设置 先打1.2 1.1自动导包
        // 第一步 1.2
        Scanner sc = new Scanner(System.in);
        // 第二步 1.3 注意搞个提示
        System.out.println("请输入两个整数");
        int zhengshu1 = sc.nextInt();

        int zhengshu2 = sc.nextInt();

        boolean panduan1 = zhengshu1 == 6 || zhengshu2 ==6 ;//要用到赋值运算符
        System.out.println(panduan1);//ture 或 false

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

        boolean panduan2 = (zhengshu1 + zhengshu2) / 6 == 1;//在这费半天时间,我一直 ==0 服了... [看了讲解后: ==o是可以的,但是运算符用%]
        System.out.println(panduan2);//true 或 false

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

讲解: 看讲解后,发现自己没读懂题,只能对一半,因为最后一句说的是其他情况全为false,说明满足任何一个条件都为true,改进代码如下

package com.itheima.Operator.logicalOperator;

// 1.1自动导包
import java.util.Scanner;

public class logicalOperatorTest1_1 {
    public static void main(String[] args) {
        // 键盘录入1.1 1.2 1.3
        // 在idea搞好了设置 先打1.2 1.1自动导包
        // 第一步 1.2
        Scanner sc = new Scanner(System.in);
        // 第二步 1.3 注意搞个提示
        System.out.println("请输入两个整数");
        int zhengshu1 = sc.nextInt();
        int zhengshu2 = sc.nextInt();

        boolean panduan = zhengshu1 == 6 || zhengshu2 == 6 || (zhengshu1 + zhengshu2) % 6 == 0;// 更简洁

        System.out.println(panduan);// ture 或 false
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值