From 8e904e6a6473adaf3b33ef4735d531a203827b74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=AD=A3=E7=84=95?= <1953038944@qq.com> Date: Sat, 26 Nov 2022 17:14:42 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E7=AC=AC=E4=BA=8C=E6=AC=A1=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...05\345\217\212\344\275\277\347\224\250.md" | 239 ++++++++++++++++++ 1 file changed, 239 insertions(+) create mode 100644 "38 \351\273\204\346\255\243\347\204\225/IDEA\347\232\204\346\246\202\350\277\260\344\270\216\345\256\211\350\243\205\345\217\212\344\275\277\347\224\250.md" diff --git "a/38 \351\273\204\346\255\243\347\204\225/IDEA\347\232\204\346\246\202\350\277\260\344\270\216\345\256\211\350\243\205\345\217\212\344\275\277\347\224\250.md" "b/38 \351\273\204\346\255\243\347\204\225/IDEA\347\232\204\346\246\202\350\277\260\344\270\216\345\256\211\350\243\205\345\217\212\344\275\277\347\224\250.md" new file mode 100644 index 0000000..546e765 --- /dev/null +++ "b/38 \351\273\204\346\255\243\347\204\225/IDEA\347\232\204\346\246\202\350\277\260\344\270\216\345\256\211\350\243\205\345\217\212\344\275\277\347\224\250.md" @@ -0,0 +1,239 @@ +## IDEA的概述与安装及使用 + +1.概述 + +IDEA:是用于Java语言开发的集成环境 + +集成环境:把代码编写,编译,运行,调试等多种功能综合到一起的开发工具 + +2.下载与安装 + +下载:https://www.jetbrains.com/idea + +安装:建议修改安装路径 + +3.IDEA中代码结构 + +项目(project): 学生成绩管理 系统 + +模块(module) 老师录入模块,辅导员查询模块,学生查询模块 + +包(package) 文件夹 + +类(class) java源码的实际文件 + +4.IDEA中基本配置 + +改背景颜色 + +字体大小 + +注释: + +注释是指在程序中添加的说明性信息 + +注释不参与程序运行,仅起到说明作用 + +注释分类: + +单行注释 格式 //注释内容 + +多行注释 格式 / **注释内容* * / + +文本注释 格式 / ** *注释内容* * / + +5.IDEA中常用快捷键 + +常用快捷键: + +快速生成main方法和输出语句 + +main方法:main或者psvm,回车 + +输出语句:sout,回车 + +Ctrl+D:复制数据到下一行 + +Ctrl+X:剪切数据,可以用来删除所在行 + +Ctrl+Alt+L:格式化代码,建议自己写代码的时候就注意格式 + +Ctrl+/:对选中的代码添加单行注释,如果想取消注释,再来一次即可 + +Ctrl+Shift+/:对选中的代码添加多行注释,如果想取消注释,再来一次即可 + +## IDEA的基本语法 + +1.字面量 + +| 字面量类型 | 说明 | 举例 | +| :----------: | :------------------: | :-----------------------: | +| 字符串字面量 | 用双引号括起来的内容 | “HelloWorld”,“java程序员” | +| 整数字面量 | 不带小数的数字 | 666,-88 | +| 小数字面量 | 带小数的数字 | 13.14,-5.21 | +| 字符字面量 | 用单引号括起来的内容 | ‘A’,‘0’,‘我’ | +| 布尔字面量 | 布尔值,表示真假 | 只有两个值:true,false | + +2.数据类型 + +| 数据 | 数据类型 | +| ------------ | --------------------- | +| “HelloWorld” | 字符串类型 | +| 666 | 整数类型 | +| 13.14 | 浮点数类型(小数类型) | +| ‘A’ | 字符类型 | +| true | 布尔类型 | + +数据类型分类 + + + +数据类型: + +(1)基本数据类型:数值型:整数(byte short **int** long) + +​ 浮点数(float **double**) + +​ + +非数值型:布尔(boolean) + +(2)引用数据类型:类(class) 字符串(String)接口(interface)数组([]) + +3.变量 + +变量的定义格式 + +格式:数据类型 变量名 = 变量值; + +范例:int price = 998; + +使用: + +> public class VariableDemo01 { +> +> ​ public static void main(String[] args) { +> +> ​ int price = 998; +> +> ​ System.out.println(price); +> +> ​ price = 888; +> +> ​ System.out.println(price); + +就会改变数值 + +① String name = “风清扬”;(字符串) + +② int age = 36;(数字) + +③ char gender = ‘男’; 也可以采用String类型表示(字符) + +④ double temperature = 36.2;(小数,也是浮点数) + +⑤ boolean flag = true; 也可以采用char或者String表示(布尔) + +变量的注意事项 + +变量名不能重复定义变量未赋值,不能使用 + +定义long类型变量,数据后面加L + +定义float类型变量,数据后面加F + +4.关键字 + +就是被Java语言赋予了特定含义的单词 + +关键字特点: + +关键字的字母全部小写 + +常用的代码编辑器,针对关键字有特殊的颜色标记,非常直观 + +5.标识符 + +标识符规则 + +组成规则: + +由数字、字母、下划线(_)和美元符($)组成 + +注意事项: + +不能以数字开头 + +不能是关键字 + +区分大小写 + +命名约定 + +小驼峰命名法:方法,变量 + +约定1:标识符一个单词的时候,首字母小写 + +范例1:name + +约定2:标识符是多个单词的时候,第一个单词首字母小写,其他单词首字母大写 + +范例2:firstName + +大驼峰命名法:类 + +约定1:标识符一个单词的时候,首字母大写 + +范例1:Hello + +约定2:标识符是多个单词的时候,每个单词首字母大写 + +范例2:HelloWorld + +# 作业 + +`` + +``` +public class ZY { + public static void main(String[] args) { + //定义变量 + String text = "今天是"; + char symbol = ','; + char symbol1 = '。'; + String text1 = "这是我的作业。"; + String text2 = "今天是学习JAVA的第"; + int number = 2; + char day ='天'; + double date = 11.25; + int number1 = 15; + //输出变量 + System.out.println(text+date+symbol+text2+number+day+symbol1); + System.out.println(text1); + System.out.println("肖肖子"); + System.out.println("他是我的辅导员"); + System.out.println("他工作积极,很好相处,为了解决我们的问题真的是操碎了心。"); + System.out.println("他真的是太好了。"); + System.out.println("还有,我需要你们的手往点赞那个地方"); + System.out.println("点他、点他、点他"); + System.out.println("因为我需要"+number1+"个赞以上才算完成作业。"); + System.out.println("你们动动手帮我"); + System.out.println("做距"); + + } +} +``` + +#### 输出内容 + +今天是11.25,今天是学习JAVA的第2天。 +这是我的作业。 +肖肖子 +他是我的辅导员 +他工作积极,很好相处,为了解决我们的问题真的是操碎了心。 +他真的是太好了。 +还有,我需要你们的手往点赞那个地方 +点他、点他、点他 +因为我需要15个赞以上才算完成作业。 +你们动动手帮我 +做距 -- Gitee From 0d7e0c1ed3b2772c47ad929fc63a0406ef7f096f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=AD=A3=E7=84=95?= <1953038944@qq.com> Date: Sat, 26 Nov 2022 17:23:38 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E7=AC=AC=E4=BA=8C=E6=AC=A1=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "38 \351\273\204\346\255\243\347\204\225/java-base" | 1 + 1 file changed, 1 insertion(+) create mode 160000 "38 \351\273\204\346\255\243\347\204\225/java-base" diff --git "a/38 \351\273\204\346\255\243\347\204\225/java-base" "b/38 \351\273\204\346\255\243\347\204\225/java-base" new file mode 160000 index 0000000..1db168e --- /dev/null +++ "b/38 \351\273\204\346\255\243\347\204\225/java-base" @@ -0,0 +1 @@ +Subproject commit 1db168e53b58be4f6d07c6dd8ff7b7ff8f9fceb1 -- Gitee From bda059ea503b9f7bd3cea8f9ace6b48296e8bc00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=AD=A3=E7=84=95?= <1953038944@qq.com> Date: Sat, 26 Nov 2022 17:27:55 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E7=AC=AC=E4=BA=8C=E6=AC=A1=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "38 \351\273\204\346\255\243\347\204\225/java-base" => java-base | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename "38 \351\273\204\346\255\243\347\204\225/java-base" => java-base (100%) diff --git "a/38 \351\273\204\346\255\243\347\204\225/java-base" b/java-base similarity index 100% rename from "38 \351\273\204\346\255\243\347\204\225/java-base" rename to java-base -- Gitee From 5f04785eeabe0b82304e1608ae1209b4dd8af047 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=AD=A3=E7=84=95?= <1953038944@qq.com> Date: Sat, 26 Nov 2022 09:31:18 +0000 Subject: [PATCH 4/6] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=AD=90=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=20java-base?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- java-base | 1 - 1 file changed, 1 deletion(-) delete mode 160000 java-base diff --git a/java-base b/java-base deleted file mode 160000 index 1db168e..0000000 --- a/java-base +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 1db168e53b58be4f6d07c6dd8ff7b7ff8f9fceb1 -- Gitee From db858e2a370b2b6ff2669486c71b865347884e41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=AD=A3=E7=84=95?= <1953038944@qq.com> Date: Wed, 30 Nov 2022 12:45:47 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E7=AC=AC=E4=B8=89=E6=AC=A1=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...25\345\217\212\344\275\234\344\270\232.md" | 213 ++++++++++++++++++ 1 file changed, 213 insertions(+) create mode 100644 "38 \351\273\204\346\255\243\347\204\225/20221129 \345\237\272\347\241\200\350\257\255\346\263\225\345\217\212\344\275\234\344\270\232.md" diff --git "a/38 \351\273\204\346\255\243\347\204\225/20221129 \345\237\272\347\241\200\350\257\255\346\263\225\345\217\212\344\275\234\344\270\232.md" "b/38 \351\273\204\346\255\243\347\204\225/20221129 \345\237\272\347\241\200\350\257\255\346\263\225\345\217\212\344\275\234\344\270\232.md" new file mode 100644 index 0000000..82d7e6a --- /dev/null +++ "b/38 \351\273\204\346\255\243\347\204\225/20221129 \345\237\272\347\241\200\350\257\255\346\263\225\345\217\212\344\275\234\344\270\232.md" @@ -0,0 +1,213 @@ +## 如何在笔记中加入图片 + +Java仓库内在自己的仓库内,新建一个文件夹*img*,把图片放进去。 + +在写代码的时候插入图片时选择当前目录就好了 + +## 变量的声明及赋值 + +1,声明的同时,直接赋值 + +```java +String name = "小明" +``` + +2,先声明,后赋值 + +```java +int age ; +age =18; +``` + +3,一次声明,多次赋值 + +```java +char a='a',b='b' +``` + +### 变量的修改 + +```java +int age =18; + 变量 = 修改值 + age = 19; +``` + +## 键盘录入 + +让用户输入内容,程序负责打印信息 + +```java +String name; +int age; +1.创建扫描器 + Scanner 变量名 =new Scanner (System.in); +2.打印提示信息,提示用户输入 + System.out.println ("请输入姓名"); +3.创建对应变量接受用户输入 + name = 变量名.next();[next()表示字符串] + name = 变量名.nextline();[nextline()也是表示字符串,可以接受一整行] +4.往下还有其他需仿照2.3继续写下去 +``` + +## 类型转换 + +1.自动转换 + +```java +int a = 10; +double b = a; +System.out.println("a");a=10 +System.out.println("b");b=10.0 +``` + +2.强制转换 + +```java +double num =5.5; +int num2 =(int)num;[强制转换会导致部分数值丢失] +System.out.println("num2");num2=5 +``` + +布尔类型(boolean)不能与其他基本数据类型转换 + +3.基本数据类型的大小关系 + +由小到大 + +byte-----short/char-----int------long-----float-----double + +4.常量优化机制 + +```java +byte c =1+2; 常量会直接算出,看是否在byte的数值范围内 +``` + +## 运算符 + +```java +int a =10; +int b =3 +int c = a+b; ++为运算符 a+b为表达式 a,b为操作数 +System.out.println("c");c=13; +System.out.println("a/b");取商值=3 +System.out.println("a%b");取余数值=1 +``` + +char类型参与运算会变为数值进行计算 + +a =97 A=65 0=48 + +```java +char ch1 = 'a'; +System.out.println(ch1 + 1); // 输出98,97 + 1 = 98 +``` + +## 字符串+的运用 + +字符串 + + +```java +System.out.println("qiu"+ 666); // 输出:qiu666 +``` + +*+* 字符串 + +如果字符串前有运算,则运算结果则会被计算出来在加上字符串 + +```java +System.out.println(1 + 2 + "兔子" + (3 + 4)); // 输出:3兔子7 +``` + +若不想数值被计算出来则可以在前面加"" + +```java +System.out.println(""1 + 2 + "兔子" ); // 输出:12兔子 +``` + +## 数值拆分 + +需求: + +键盘录入一个三位数,将其拆分为个位,十位,百位,打印在控制台 + +示例代码: + +```java +import java.util.Scanner; +public class Test { + public static void main(String[] args) { + // 1:使用Scanner键盘录入一个三位数 + Scanner sc = new Scanner(System.in); + System.out.println("请输入一个三位数"); + int num = sc.nextInt(); + // 2:个位的计算:数值 % 10 + int ge = num % 10; + // 3:十位的计算:数值 / 10 % 10 + int shi = num / 10 % 10; + // 4:百位的计算:数值 / 100 + int bai = num / 100; + // 5:将个位, 十位, 百位拼接上正确的字符串, 打印即可 + System.out.println("整数"+num+"个位为:" + ge); + System.out.println("整数"+num+"十位为:" + shi); + System.out.println("整数"+num+"百位为:" + bai); + + } +} +``` + +# 作业 + +1,求个,十,百,千 + +```java +import java.util.Scanner; + +public class zy20221129 { + public static void main(String[] args) { +// 创建扫描器,录入四位数 + Scanner zy = new Scanner(System.in); + System.out.println("请输入"); + int n;um = zy.nextInt(); +// 个位的计算 + int ge = num % 10; + System.out.println("整数"+num+"个位数为:" + ge); +// 十位的计算 + int shi = num /10 % 10; + System.out.println("整数"+num+"十位数为:" + shi); +// 百位的计算 + int bai = num /100 % 10; + System.out.println("整数"+num+"百位数为:" + bai); +// 千位的计算 + int qian = num /1000; + System.out.println("整数"+num+"千位数为:,2" + qian); + } +} + +``` + + + +2, + +```java +import java.util.Scanner; + +public class zy { + public static void main(String[] args) { + Scanner zy = new Scanner(System.in); +// 华摄度转摄氏度 + System.out.println("华氏度:"); + double num = zy.nextDouble(); + double hzs = (num-32)*5/9; + System.out.println("得摄氏度为:"+hzs); +// 摄氏度转华摄度 + System.out.println("摄氏度:"); + double nums = zy.nextDouble(); + double szh = nums*9/5+32; + System.out.println("得华氏度为:"+szh); + } +} +``` + -- Gitee From d5a4c7e39756cbf31efc2b438ce3f34e16f19779 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=AD=A3=E7=84=95?= <1953038944@qq.com> Date: Thu, 1 Dec 2022 22:17:38 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E7=AC=AC=E5=9B=9B=E6=AC=A1=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...45\350\257\206\347\254\224\350\256\260.md" | 0 ...05\345\217\212\344\275\277\347\224\250.md" | 0 ...46\345\217\212\344\275\234\344\270\232.md" | 277 ++++++++++++++++++ 3 files changed, 277 insertions(+) rename "38 \351\273\204\346\255\243\347\204\225/java\345\237\272\347\241\200\347\237\245\350\257\206\347\254\224\350\256\260.md" => "38 \351\273\204\346\255\243\347\204\225/20221124java\345\237\272\347\241\200\347\237\245\350\257\206\347\254\224\350\256\260.md" (100%) rename "38 \351\273\204\346\255\243\347\204\225/IDEA\347\232\204\346\246\202\350\277\260\344\270\216\345\256\211\350\243\205\345\217\212\344\275\277\347\224\250.md" => "38 \351\273\204\346\255\243\347\204\225/20221126IDEA\347\232\204\346\246\202\350\277\260\344\270\216\345\256\211\350\243\205\345\217\212\344\275\277\347\224\250.md" (100%) create mode 100644 "38 \351\273\204\346\255\243\347\204\225/20221201\345\255\246\344\271\240\345\220\204\347\247\215\350\277\220\347\256\227\347\254\246\345\217\212\344\275\234\344\270\232.md" diff --git "a/38 \351\273\204\346\255\243\347\204\225/java\345\237\272\347\241\200\347\237\245\350\257\206\347\254\224\350\256\260.md" "b/38 \351\273\204\346\255\243\347\204\225/20221124java\345\237\272\347\241\200\347\237\245\350\257\206\347\254\224\350\256\260.md" similarity index 100% rename from "38 \351\273\204\346\255\243\347\204\225/java\345\237\272\347\241\200\347\237\245\350\257\206\347\254\224\350\256\260.md" rename to "38 \351\273\204\346\255\243\347\204\225/20221124java\345\237\272\347\241\200\347\237\245\350\257\206\347\254\224\350\256\260.md" diff --git "a/38 \351\273\204\346\255\243\347\204\225/IDEA\347\232\204\346\246\202\350\277\260\344\270\216\345\256\211\350\243\205\345\217\212\344\275\277\347\224\250.md" "b/38 \351\273\204\346\255\243\347\204\225/20221126IDEA\347\232\204\346\246\202\350\277\260\344\270\216\345\256\211\350\243\205\345\217\212\344\275\277\347\224\250.md" similarity index 100% rename from "38 \351\273\204\346\255\243\347\204\225/IDEA\347\232\204\346\246\202\350\277\260\344\270\216\345\256\211\350\243\205\345\217\212\344\275\277\347\224\250.md" rename to "38 \351\273\204\346\255\243\347\204\225/20221126IDEA\347\232\204\346\246\202\350\277\260\344\270\216\345\256\211\350\243\205\345\217\212\344\275\277\347\224\250.md" diff --git "a/38 \351\273\204\346\255\243\347\204\225/20221201\345\255\246\344\271\240\345\220\204\347\247\215\350\277\220\347\256\227\347\254\246\345\217\212\344\275\234\344\270\232.md" "b/38 \351\273\204\346\255\243\347\204\225/20221201\345\255\246\344\271\240\345\220\204\347\247\215\350\277\220\347\256\227\347\254\246\345\217\212\344\275\234\344\270\232.md" new file mode 100644 index 0000000..499c249 --- /dev/null +++ "b/38 \351\273\204\346\255\243\347\204\225/20221201\345\255\246\344\271\240\345\220\204\347\247\215\350\277\220\347\256\227\347\254\246\345\217\212\344\275\234\344\270\232.md" @@ -0,0 +1,277 @@ +# 学习各种运算符及作业 + +## 自增自减运算符 + +| 符号 | 作用 | 说明 | +| ---- | ---- | ----------- | +| ++ | 自增 | 变量的值加1 | +| -- | 自减 | 变量的值减1 | + +注意事项: + +​ ++和-- 既可以放在变量的后边,也可以放在变量的前边。 + +​ 单独使用的时候, ++和-- 无论是放在变量的前边还是后边,结果是一样的。 + +​ 参与操作的时候,如果放在变量的后边,先拿变量参与操作,后拿变量做++或者--。 + +​ 参与操作的时候,如果放在变量的前边,先拿变量做++或者--,后拿变量参与操作。 + +​ 最常见的用法:单独使用。 + +```java +int i = 10; +i++; // 单独使用 +System.out.println("i:" + i); // i:11 + +int j = 10; +++j; // 单独使用 +System.out.println("j:" + j); // j:11 + +int x = 10; +int y = x++; // 赋值运算,++在后边,所以是使用x原来的值赋值给y,x本身自增1 +System.out.println("x:" + x + ", y:" + y); // x:11,y:10 + +int m = 10; +int n = ++m; // 赋值运算,++在前边,所以是使用m自增后的值赋值给n,m本身自增1 +System.out.println("m:" + m + ", n:" + n); // m:11,n:11 +``` + + + +## 赋值运算符(复合运算符) + +| = | 等于 | a=b(a 赋值给b) | +| ---- | ---- | -------------- | +| += | a+=b | a=a+b | +| -= | a-=b | a=a-b | +| /= | a/=b | a=a/b | +| %= | a%=b | a=a%b | +| *= | a*=b | a=a*b | + +```java +int age = 12; +age += 10; +//age += 10;--->age = age + 10 =12; +``` + +注意: + +扩展的赋值运算符隐含了强制类型转换。 + +```java +short s = 10; +s = s + 10; // 此行代码报出,因为运算中s提升为int类型,运算结果int赋值给short可能损失精度 + +s += 10; // 此行代码没有问题,隐含了强制类型转换,相当于 s = (short) (s + 10); +``` + +## 关系运算符 + +关系运算符,也就是比较大小,返回的是布尔类型,成立为true,不成立为false。 + +| 符号 | 说明 | +| ---- | ------------------------------------------------------- | +| == | a==b,判断a和b的值是否相等,成立为true,不成立为false | +| != | a!=b,判断a和b的值是否不相等,成立为true,不成立为false | +| > | a>b,判断a是否大于b,成立为true,不成立为false | +| >= | a>=b,判断a是否大于等于b,成立为true,不成立为false | +| < | a b); // false +System.out.println(a >= b); // false +System.out.println(a < b); // true +System.out.println(a <= b); // true + +// 关系运算的结果肯定是boolean类型,所以也可以将运算结果赋值给boolean类型的变量 +boolean flag = a > b; +System.out.println(flag); // 输出false +``` + +## 逻辑运算符 + +| 符号 | 作用 | 说明 | +| ---- | -------- | ----------------------------------------- | +| & | 逻辑与 | a&b,a和b 都真才真,否则为假 | +| \| | 逻辑或 | a\|b,a或b 有一个真以上的都为真,全假为假 | +| ^ | 逻辑异或 | a^b,一公一母真,两公或两母为假 | +| ! | 逻辑非 | !a,取反 | + +```java +//定义变量 +int i = 10; +int j = 20; +int k = 30; + +//& “与”,并且的关系,只要表达式中有一个值为false,结果即为false +System.out.println((i > j) & (i > k)); //false & false,输出false +System.out.println((i < j) & (i > k)); //true & false,输出false +System.out.println((i > j) & (i < k)); //false & true,输出false +System.out.println((i < j) & (i < k)); //true & true,输出true +System.out.println("--------"); + +//| “或”,或者的关系,只要表达式中有一个值为true,结果即为true +System.out.println((i > j) | (i > k)); //false | false,输出false +System.out.println((i < j) | (i > k)); //true | false,输出true +System.out.println((i > j) | (i < k)); //false | true,输出true +System.out.println((i < j) | (i < k)); //true | true,输出true +System.out.println("--------"); + +//^ “异或”,相同为false,不同为true +System.out.println((i > j) ^ (i > k)); //false ^ false,输出false +System.out.println((i < j) ^ (i > k)); //true ^ false,输出true +System.out.println((i > j) ^ (i < k)); //false ^ true,输出true +System.out.println((i < j) ^ (i < k)); //true ^ true,输出false +System.out.println("--------"); + +//! “非”,取反 +System.out.println((i > j)); //false +System.out.println(!(i > j)); //!false,,输出true +``` + +## 短路逻辑运算符 + +| 符号 | 作用 | 说明 | +| ---- | ------ | ---------------------------- | +| && | 短路与 | 作用和&相同,但是有短路效果 | +| \|\| | 短路或 | 作用和\|相同,但是有短路效果 | + +在逻辑与运算中,只要有一个表达式的值为false,那么结果就可以判定为false了,没有必要将所有表达式的值都计算出来,短路与操作就有这样的效果,可以提高效率。同理在逻辑或运算中,一旦发现值为true,右边的表达式将不再参与运算。 + +- 逻辑与&,无论左边真假,右边都要执行。 + +- 短路与&&,如果左边为真,右边执行;如果左边为假,右边不执行。 + +- 逻辑或|,无论左边真假,右边都要执行。 + +- 短路或||,如果左边为假,右边执行;如果左边为真,右边不执行。 + +```java +int x = 3; +int y = 4; +System.out.println((x++ > 4) & (y++ > 5)); // 两个表达都会运算 +System.out.println(x); // 4 +System.out.println(y); // 5 + +System.out.println((x++ > 4) && (y++ > 5)); // 左边已经可以确定结果为false,右边不参与运算 +System.out.println(x); // 4 +System.out.println(y); // 4 +``` + +## 三元运算符 + +三元运算符语法格式: + +关系表达式 ? 表达式1 : 表达式2; + +解释:问号前面的位置是判断的条件,判断结果为boolean型,为true时调用表达式1,为false时调用表达式2。其逻辑为:如果条件表达式成立或者满足则执行表达式1,否则执行第二个。 + +举例: + +```java +int a = 10; +int b = 20; +int c = a > b ? a : b; // 判断 a>b 是否为真,如果为真取a的值,如果为假,取b的值 +``` + +## 作业 + +1.三元运算符的运用 + +```java +public class zy { + public static void main(String[] args) { + int a = 10; + int b = 30; + int c = 20; + int d = a > b ? a : b; + System.out.println(d); + int e = b > c ? b : c; + System.out.println(e); + } +} +``` + +2.倍数问题 + +```java +import java.util.Scanner; + +public class zy { + public static void main(String[] args) { + Scanner cs = new Scanner(System.in); + System.out.println("请输入:"); + int num1 = cs.nextInt(); + int num2 = cs.nextInt(); + System.out.println( (num1+num2)%3 == 0 || num1 == 3 || num2 == 3 ); + + } +} + +``` + +3.身高问题 + +```java +public class zy { + public static void main(String[] args) { + int father = 177; + int mother = 165; + double x1 = 1.08; + double x2 = 0.923; + System.out.println("儿子的身高为:" + (father + mother) * x1 / 2 + "CM" ); + System.out.println("女儿的身高为:" + (father * x2 + mother) / 2 + "CM"); + } +} + +``` + +4.判断红茶妹与绿茶妹的钱一样不? + +```java +public class zy { + public static void main(String[] args) { + int hong = 21; + hong *= 2; + System.out.println( "红茶妹钱为:" + ( hong + 3 ) +"元" ); + int lv = 24; + lv *= 2; + System.out.println( "绿茶妹钱为:" + lv + "元" ); + System.out.println( hong == lv ); + + } +} +``` + +5.去食堂吃饭最少要花多少? + +```java +public class zy { + public static void main(String[] args) { + int yxrs = 24; + int hsm = 8; + int mf = 3; + int xj = yxrs + hsm + mf; + xj *= 0.8; + System.out.println( "折扣价:" + xj +"元"); + int yxrsyhj= 16; + int hm = yxrsyhj + hsm + mf; + System.out.println( "优惠价:" + hm +"元"); + int zuih = xj < hm ? xj : hm; + System.out.println("最少要花:" + zuih + "元"); + + } +} + +``` + -- Gitee