ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 【IDEA、运算符、数据输入】 ##### 今日复习指南 ~~~ 1.IDEA操作(0.5个小时内完成)   (1)创建项目   (2)创建模块   (3)创建包   (4)创建类 2.运算符(0.5个小时内完成)   (1)关系运算符:Demo01GuanXi.java (2)逻辑运算符:Demo03DuanLu.java 短路&&和|| (3)三元运算符:Demo03SanYuanHeShang.java 三个和尚的最大身高 3.键盘录入(1个小时内完成: 多练几遍)    Demo01ScannerSum.java 获取键盘录入的两个int数字求和    Demo02ScannerHeShang.java 获取键盘录入的三个int数字求最大值 ​ ~~~ ##### 今天内容介绍 ~~~ IDEA【重点:操作】 运算符【重点:理解】 数据输入【重点:格式需要记忆】 练习【重点:操作】 ~~~ ### 第一章 开发工具IntelliJ IDEA ##### 1.1 IDEA开发工具的安装 ##### 1.2 IDEA的首次驱动 ~~~ 查看文件夹 IDEA操作文档\01_首次驱动项目和模块的创建.docx文件 ~~~ ![](https://img.kancloud.cn/06/6a/066aa434a75df51d2a7fe7cca80b2bc5_1335x512.png) ##### 1.3 IDEA的包和类的创建 ~~~ 查看文件夹 IDEA操作文档\02_包和类的创建.docx ~~~ ##### 1.4 IDEA字体的设置和快捷键的修改 ~~~ 查看文件夹 IDEA操作文档\03_字体设置及快捷键修改.docx ~~~ ![](https://img.kancloud.cn/5b/7e/5b7e99b9913f96b3c423165f5fe06964_942x321.png) ##### 修改字体 ![](https://img.kancloud.cn/47/0d/470dc70e8a72c81ca22f0aa1d5a9119e_954x692.png) ##### ctrl+滚轮放大/缩小字体 ![](https://img.kancloud.cn/c6/0a/c60a6515eeb071e773d9b866404de2a6_960x692.png) ##### 1.5 IDEA工程目录的介绍 ![](https://img.kancloud.cn/32/34/32346fa26070206c0f2679e571e171f4_1339x418.png) ##### 1.6 IDEA快捷键的使用 ~~~ 1.psvm + 回车: main方法 2.sout + 回车: 输出语句 3.ctrl + d: 复制当前行 4.ctrl + alt + L: 格式化代码 5.alt + shift + ↑: 向上移动代码 6.alt + shift + ↓: 向下移动代码 7.ctrl + /: 单行注释 8.ctrl + shift + /: 多行注释 9.alt + 回车: 代码修正 10.alt + /: 自动提示 11.ctrl + Y: 删除当前行     ​ ~~~ ##### 1.7 IDEA创建模块和删除模块 ~~~ 查看文件夹IDEA操作文档\04_非首次模块的创建导入删除.docx ~~~ ##### 1.8 IDEA导入项目和关闭项目 ~~~ 查看文件夹IDEA操作文档\05_非首次项目的创建导入打开.docx ~~~ ### 第二章 运算符 ##### 2.1 关系运算符 ~~~ 1.作用:用来比较两个数据之间的大小关系 2.特点: 不管关系表达式多么简单或者多么复杂,最终的结果只有两个,要么是true,要么是false 3.分类: == 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,判断a是否小于b,成立为true,不成立为false <= a<=b,判断a是否小于或者等于b,成立为true,不成立为false 4.注意: (1)=: 表示的是赋值 赋值运算符 (2)==: 表示的是判断是否相同 关系运算符 ~~~ ~~~ public class Demo01GuanXi { public static void main(String[] args) { int a = 10, b = 20; //boolean result = a>b;//10 > 20 : false //System.out.println(result);//false System.out.println(a > b); //10 > 20 : false System.out.println(a >= b); //10 >= 20: false System.out.println(a < b); //10 < 20 : true System.out.println(a <= b); //10 <= 20 : true System.out.println(a != b); //10 != 20 : true System.out.println(a == b); //10 == 20 : false System.out.println(a = b); //把变量b的值赋值给a,再打印a的值: 20 } } ~~~ ##### 2.2 逻辑运算符 ~~~ 举例: 咱们班哥们在黑马学习java,顺利毕业,高薪就业,找到了对象,谈了好长时间,需要谈婚论嫁 到你对象家和准岳母谈判: 准岳母: 小伙子呀,你呢? 必须得有房(条件1: true/false),而且呢, 你呀,还得有车(条件2: true/false),然后你们的事情才能定下来 注意: 像上面的两个条件,要求必须都成立,最终结果才成立 需要使用逻辑&连接两个条件 准岳母: 小伙子呀,你呢? 要么有房(条件1: true/false),要么有车(条件2: true/false), 然后你们的事情才能定下来 注意: 像上面的两个条件,要求只要有一个成立,最终结果就成立 需要使用逻辑|连接两个条件 1.作用: 用来连接布尔表达式的,最终的结果一定要么是true,要么是false 2.分类: (1)&(shift+7): 逻辑与,并且的意思,只有所有条件都成立(true),最终的结果才成立(true) 特点: 有false,则false 只要有一个条件是false,最终就是false 只有所有条件是true,最终才是true (2)|(shift+\): 逻辑或,或者的意思,只要有一个条件成立(true),最终的结果就是成立的(true) 特点: 有true,则true 只要有一个条件是true,最终就是true 只有所有条件是false,最终才是false (3)^(shift+6): 逻辑异或,相同为false,不同为true ----基本不用,了解即可 (4)!(shift+1): 逻辑取反 !true 就是 false,!false 就是true ~~~ ~~~ public class Demo02LuoJi { public static void main(String[] args) { int a = 10, b = 20, c = 30; System.out.println(a>b & a>c);//10 > 20 & 10 > 30 ==> false & false ==> false System.out.println(a>b & a<c);//10 > 20 & 10 < 30 ==> false & true ==> false System.out.println(a<b & a>c);//10 < 20 & 10 > 30 ==> true & false ==> false System.out.println(a<b & a<c);//10 < 20 & 10 < 30 ==> true & true ==> true System.out.println("---------------------------"); System.out.println(a>b | a>c);//10 > 20 | 10 > 30 ==> false | false ==> false System.out.println(a>b | a<c);//10 > 20 | 10 < 30 ==> false | true ==> true System.out.println(a<b | a>c);//10 < 20 | 10 > 30 ==> true | false ==> true System.out.println(a<b | a<c);//10 < 20 | 10 < 30 ==> true | true ==> true System.out.println("---------------------------"); System.out.println(a>b ^ a>c);//10 > 20 ^ 10 > 30 ==> false ^ false ==> false System.out.println(a>b ^ a<c);//10 > 20 ^ 10 < 30 ==> false ^ true ==> true System.out.println(a<b ^ a>c);//10 < 20 ^ 10 > 30 ==> true ^ false ==> true System.out.println(a<b ^ a<c);//10 < 20 ^ 10 < 30 ==> true ^ true ==> false System.out.println("---------------------------"); System.out.println(!true);//false System.out.println(!false);//true } } ~~~ ##### 2.3 逻辑运算符的短路效果 ~~~ 短路的逻辑运算符 1.基本使用 (1)短路逻辑与&&: 左侧为false,右侧不计算 (2)短路逻辑与||: 左侧为true,右侧不计算 2.特点: (1)&&和&最终的结果是一样的,但是&&具有短路效果可以提高效率 (2)||和|最终的结果是一样的,但是||具有短路效果可以提高效率 ~~~ ~~~ public class Demo03DuanLu { public static void main(String[] args) { int a = 2; /* 表达式(3<2) && (++a>2): 从左向右计算 先计算(3<2): false 因为后面使用的是&&,而且&&的左侧已经是false了,已经确定了最终的结果就是false 所以&&的右侧不再进行计算 */ System.out.println((3<2) && (++a>2));//false System.out.println(a);//2 int b = 2; /* 表达式(3<2) & (++b>2): 从左向右计算 先计算(3<2): false 因为后面使用的是&,不管&前面是true还是false,都计算&右边的表达式(++b>2) 导致b的值增加了1 */ System.out.println((3<2) & (++b>2));//false System.out.println(b);//3 System.out.println("--------------"); int c = 2; /* 表达式(3>2) || (++c>2): 从左向右计算 先计算(3>2): true 因为后面使用的是||,而且||的左侧已经是true了,已经确定了最终的结果就是true 所以||的右侧不再进行计算 */ System.out.println((3>2) || (++c>2));//true System.out.println(c);//2 int d = 2; /* 表达式(3>2) | (++d>2): 从左向右计算 先计算(3>2): true 因为后面使用的是|,不管|前面是true还是false,都计算|右边的表达式(++d>2) 导致d的值增加了1 */ System.out.println((3>2) | (++d>2));//true System.out.println(d);//3 } } ~~~ ##### 2.4 三元运算符格式 ~~~ 1.格式: 数据类型 变量名称 = 布尔表达式1 ? 表达式2 : 表达式3; 注意: 布尔表达式1: 这个式子不管多么复杂,也不管多么简单,结果必须是布尔(boolean)类型(true/false) 2.执行流程: (1)计算布尔表达式1的结果,看是true还是false (2)如果布尔表达式1的结果是true,就把表达式2的最终结果赋值给左侧的变量 (3)如果布尔表达式1的结果是false,就把表达式3的最终结果赋值给左侧的变量 ~~~ ##### 执行流程图解: ![](https://img.kancloud.cn/3f/2f/3f2ffe781c72d629b9ee4c9339dce439_598x301.png) ##### 2.5 三元运算符的练习之两只老虎(最大值) ~~~ 需求: 动物园里有两只老虎,已知两只老虎的体重分别为180kg、200kg, 请用程序实现计算两只老虎的体重的最大值。 实现步骤: 1.定义2个int变量w1和w2,并按照题目需求进行初始化,分别表示两只老虎的体重 2.使用三元运算符就是w1和w2的最大值,保存到int变量max中 3.打印max ~~~ ##### 图解分析 ![](https://img.kancloud.cn/29/03/2903fca0f81a6486f7508fe53b210aa6_1199x505.png) ~~~ public class Demo03SanYuanTiger { public static void main(String[] args) { //1.定义2个int变量w1和w2,并按照题目需求进行初始化,分别表示两只老虎的体重 int w1 = 180, w2 = 200; //2.使用三元运算符就是w1和w2的最大值,保存到int变量max中 //200>180: true 200 180 int max = (w2>w1) ? w2 : w1; //3.打印max System.out.println("最大值: "+max); } } ~~~ ##### 2.6 三元运算符的练习之两只老虎(相等) ~~~ 需求: 动物园里有两只老虎,已知两只老虎的体重分别为180kg、200kg, 请用程序实现判断两只老虎的体重是否相同。 实现步骤: 1.定义2个int变量w1和w2,并根据题目需求进行初始化,分别代表两只老虎的体重 2.使用三元运算符计算w1和w2是否相同(==),把结果保存到boolean类型的变量result中 3.打印结果result ~~~ ~~~ package com.itheima03; /* 需求: 动物园里有两只老虎,已知两只老虎的体重分别为180kg、200kg, 请用程序实现判断两只老虎的体重是否相同。 实现步骤: 1.定义2个int变量w1和w2,并根据题目需求进行初始化,分别代表两只老虎的体重 2.使用三元运算符计算w1和w2是否相同(==),把结果保存到boolean类型的变量result中 3.打印结果result */ public class Demo02SanYuanTiger { public static void main(String[] args) { //1.定义2个int变量w1和w2,并根据题目需求进行初始化,分别代表两只老虎的体重 int w1 = 180, w2 = 200; //2.使用三元运算符计算w1和w2是否相同(==),把结果保存到boolean类型的变量result中 boolean result = (w1 == w2) ? true : false; //3.打印结果result System.out.println("是否相同: "+result); } } ~~~ ##### 2.7 三元运算符的练习之三个和尚 ~~~ 需求: 一座寺庙里住着三个和尚,已知他们的身高分别为150cm、210cm、165cm, 请用程序实现获取这三个和尚的最高身高。 实现步骤: 1.定义3个int变量h1,h2,h3代表3个和尚的身高,并根据题目需求进行初始化 2.使用三元运算符计算出h1和h2的最大身高,保存到int变量temp中 3.再使用三元运算符计算出temp和h3的最大身高,保存到int变量max中 4.打印max的值 ~~~ ##### 图解分析 ![](https://img.kancloud.cn/83/42/834207a7d2e9df2786a8ba7617542fa2_1110x524.png) ~~~ package com.itheima03; /* 需求: 一座寺庙里住着三个和尚,已知他们的身高分别为150cm、210cm、165cm, 请用程序实现获取这三个和尚的最高身高。 实现步骤: 1.定义3个int变量h1,h2,h3代表3个和尚的身高,并根据题目需求进行初始化 2.使用三元运算符计算出h1和h2的最大身高,保存到int变量temp中 3.再使用三元运算符计算出temp和h3的最大身高,保存到int变量max中 4.打印max的值 */ public class Demo03SanYuanHeShang { public static void main(String[] args) { //1.定义3个int变量h1,h2,h3代表3个和尚的身高,并根据题目需求进行初始化 int h1 = 150, h2 = 210, h3 = 165; //2.使用三元运算符计算出h1和h2的最大身高,保存到int变量temp中 //150 > 210: false 把h2的值赋值给temp int temp = (h1 > h2) ? h1 : h2;//temp: 210 //3.再使用三元运算符计算出temp和h3的最大身高,保存到int变量max中 //210 > 165: true 把temp的值赋值给max int max = (temp > h3) ? temp : h3;//max: 210 //4.打印max的值 System.out.println("三个和尚的最大身高: "+max); } } ~~~ ### 第三章 数据输入(应用) ##### 3.1 键盘录入的基本使用 ~~~ 数据输出: 把程序的运行结果输出到控制台,从而显示到屏幕上 数据输入: 获取键盘录入的数据到程序中,从而在程序中对数据进行相关的运算 问题1: 像键盘录入这种功能,其实程序员自己实现起来是非常麻烦的,而且还很常用,所以jdk的开发人员就帮助程序员, 实现了键盘录入的这种功能,把键盘录入的功能定义到一个类Scanner中,并且把这个类放入到了java.util包中 问题2: 如何使用jdk中定义好的存储在java.util包中的键盘录入Scanner类呢? java中的数据类型,分为基本类型(四类八种)和引用类型,基本类型的使用我们已经学习过了 但是对于引用类型而言,使用有固定的三个步骤 java.util.Scanner类: 获取键盘录入的数据,是一个引用类型,使用也有固定的三个步骤: 1.导包(找到我们要使用的东西: 类) 格式: import 包名.类名; 键盘录入Scanner类如何导包: import java.util.Scanner; 2.创建对象 格式: 类名 对象名 = new 类名(...); 注意: 类名就是我们之前写代码时,class关键字后面的名字 创建键盘录入Scanner类的对象: Scanner sc = new Scanner(System.in); 注意: ()中的System.in目前是固定写法 3.使用 sc.nextInt(): 用来获取键盘录入的整数数字 ~~~ ##### 键盘录入的理解 ![](https://img.kancloud.cn/6c/cc/6ccce06c31f254beb4a5423e80a2af97_1199x495.png) ##### 3.2 键盘录入的练习 ~~~ 需求: 获取键盘录入的两个整数(int类型)数字,在控制台输出求和的结果。 实现步骤: 1.导包: import java.util.Scanner 2.创建键盘录入Scanner类的对象: Scanner sc = new Scanner(System.in); 3.获取键盘录入的2个int数字,分别保存到int变量a和b中 4.计算变量a和b的数据之和,保存到int变量sum中 5.打印sum的值 ~~~ ~~~ import java.util.Scanner;//导入键盘录入Scanner类 public class Demo01ScannerSum { public static void main(String[] args) { //1.导包: import java.util.Scanner //2.创建键盘录入Scanner类的对象: Scanner sc = new Scanner(System.in); Scanner sc = new Scanner(System.in); //3.获取键盘录入的2个int数字,分别保存到int变量a和b中 System.out.println("请输入第一个整数数字: "); //sc.nextInt(): 获取到键盘录入的整数数字,通过=赋值给int变量a int a = sc.nextInt(); System.out.println("您输入的第一个整数数字是: "+a); System.out.println("请输入第二个整数数字: "); //sc.nextInt(): 获取到键盘录入的整数数字,通过=赋值给int变量b int b = sc.nextInt(); System.out.println("您输入的第二个整数数字是: "+b); //4.计算变量a和b的数据之和,保存到int变量sum中 int sum = a + b; //5.打印sum的值 System.out.println("和: "+sum); } } ~~~ ##### 3.3 键盘录入改写三个和尚案例 ~~~ 需求: 一座寺庙里住着三个和尚,已知他们的身高分别为150cm、210cm、165cm,身高需要使用键盘录入 请用程序实现获取这三个和尚的最高身高。 实现步骤: 1.创建键盘录入Scanner类的对象(先导包,后创建对象) 自动导包1: 直接写字母Sc,会出现提示,选择Scanner,回车 ------------建议----------- 自动导包2: 直接写单词Scanner,alt + 回车,选择需要的Scanner,回车 2.获取键盘录入的3个整数数字(代表三个和尚的身高),分别保存到3个int变量h1,h2,h3中 3.使用三元运算符计算h1和h2的最大值,保存到int变量temp中 4.再使用三元运算符计算temp和h3的最大值,保存到int变量max中 5.打印max的值 ~~~ ~~~ public class Demo02ScannerHeShang { public static void main(String[] args) { //1.创建键盘录入Scanner类的对象(先导包,后创建对象) Scanner sc = new Scanner(System.in); //2.获取键盘录入的3个整数数字(代表三个和尚的身高),分别保存到3个int变量h1,h2,h3中 System.out.println("请输入第一个和尚的身高(整数数字): "); int h1 = sc.nextInt(); System.out.println("请输入第二个和尚的身高(整数数字): "); int h2 = sc.nextInt(); System.out.println("请输入第三个和尚的身高(整数数字): "); int h3 = sc.nextInt(); System.out.println("您输入的三个和尚的身高: "+h1+", "+h2+", "+h3); //3.使用三元运算符计算h1和h2的最大值,保存到int变量temp中 int temp = (h1 > h2) ? h1 : h2; //4.再使用三元运算符计算temp和h3的最大值,保存到int变量max中 int max = (temp > h3) ? temp : h3; //5.打印max的值 System.out.println("以上三个和尚的最大身高: "+max); } } ~~~ ## 总结 ~~~ 能够知道&&和&的区别 &&和&: 计算结果相同 &&: 具有短路的效果,左侧为false,右侧不进行计算 &: 没有短路效果,右侧一定都需要计算 能够使用三元运算符完成获取两个数中较大值 int a = 200, b = 100; int max = (a>b) ? a : b; sout(max); 能够使用键盘录入数据并完成两个数据求和 //导包 import java.util.Scanner; //创建 Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); int sum = a + b; sout(sum); 能够使用IDEA完成HelloWorld案例 ----必须会 能够知道IDEA的项目结构 能够使用IDEA完成模块的导入 ~~~