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