From 7b515c5d3e8ce3d07e9b84f29f62fa54fb7ddba2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=94=90=E5=9B=BD=E4=BA=AE?= <647597435@qq.com> Date: Sun, 27 Nov 2022 16:08:20 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=88=91=E7=9A=84=E7=AC=AC=E4=BA=8C?= =?UTF-8?q?=E6=AC=A1=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...72\347\241\200\350\257\255\346\263\225.md" | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 "19 \345\224\220\345\233\275\344\272\256/20221125 \345\255\246\344\271\240IDEA\345\222\214\345\237\272\347\241\200\350\257\255\346\263\225.md" diff --git "a/19 \345\224\220\345\233\275\344\272\256/20221125 \345\255\246\344\271\240IDEA\345\222\214\345\237\272\347\241\200\350\257\255\346\263\225.md" "b/19 \345\224\220\345\233\275\344\272\256/20221125 \345\255\246\344\271\240IDEA\345\222\214\345\237\272\347\241\200\350\257\255\346\263\225.md" new file mode 100644 index 0000000..cede118 --- /dev/null +++ "b/19 \345\224\220\345\233\275\344\272\256/20221125 \345\255\246\344\271\240IDEA\345\222\214\345\237\272\347\241\200\350\257\255\346\263\225.md" @@ -0,0 +1,54 @@ +# 第二次作业 + +## IDEA中 的配置和快捷键 + +1.配置分为 项目——模块——包——类 + +2.操作步骤 打开IDEN新建项目 找到java模块1.8版本使用新窗口 + +3.找到新建项目包 如果新建包域名要反着写如:net.mxdxstudent 在新建类 + +4.快捷键注释 1.//(单行注释)2./* (多行注释 )*/ 3./**(文档注释)* */ + +5.常用快速命令 main方法:main或psvm, 回车 输出方法:sout,回车 + +6.常用快捷键 + + 1.ctrl+d 复制 2.ctrl+x 剪切 3.ctrl+alt+l 格式化 4.ctrl+/ 单行注释 5.ctrl+shift+/ 选中代码多行注释 + +## 基础语法 + +1.语法分为 字面量 数据类型 变量 关键字 标识符 + +2.字面量类型 1.字符串字面量 2.整数字面量 3.小数字面量 4.字符字面量 5.布尔字面量 + +3.基础代码 1.字符串 string name ("") 2.字符字 int age 36, 3.整数 char gender ‘ ’ ;4.小数 都变了Temprature=36.2 5.布尔 boolean flag=t/f + +4.数字整数和浮点数默认是 int / double + + 5.变量定义 数据类型 变量名 =变量值; 如 int price =998; (变量值 可存入内存在输出改变 int price = 变量值) + +6.变量名不能重复 变量为负值不能使用 定义long类型变量 ,数据后面加L 定义float类型变量,数据后面加F + +7.标识符 1.不能以数字开头 2.不能是关键字 3.要区分大小写 + +8.标识符可以以大小驼峰命名 小驼峰可以命名 方法和变量 大驼峰命名类 + + + +## 作业 + +```java +public class xiaolang { + public static void main(String[] args) { + System.out.println("我爱3班,我尊敬肖导"); + String studentName = "唐国亮"; + String teacherName = "肖俊老师"; + System.out.println(teacherName + "说"); + System.out.println("同学们好"); + System.out.println(studentName + "说"); + System.out.println("肖俊老师担任课程教师,认真负责,有很强的敬业精神,和蔼可亲,幽默风趣,课堂气氛十分活跃,讲课有特色,很受学生欢迎"); + } +} +``` + -- Gitee From 0ad6544e5aa6dc5a12a389abb9c3e48ef46a0ed0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=94=90=E5=9B=BD=E4=BA=AE?= <647597435@qq.com> Date: Wed, 30 Nov 2022 18:14:15 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E7=AC=AC=E4=B8=89=E8=AF=8D=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...14\350\277\220\347\256\227\347\254\246.md" | 220 ++++++++++++++++++ 1 file changed, 220 insertions(+) create mode 100644 "19 \345\224\220\345\233\275\344\272\256/20221129 \345\255\246\344\271\240\347\261\273\345\236\213\350\275\254\346\215\242\345\222\214\350\277\220\347\256\227\347\254\246.md" diff --git "a/19 \345\224\220\345\233\275\344\272\256/20221129 \345\255\246\344\271\240\347\261\273\345\236\213\350\275\254\346\215\242\345\222\214\350\277\220\347\256\227\347\254\246.md" "b/19 \345\224\220\345\233\275\344\272\256/20221129 \345\255\246\344\271\240\347\261\273\345\236\213\350\275\254\346\215\242\345\222\214\350\277\220\347\256\227\347\254\246.md" new file mode 100644 index 0000000..d8bd51e --- /dev/null +++ "b/19 \345\224\220\345\233\275\344\272\256/20221129 \345\255\246\344\271\240\347\261\273\345\236\213\350\275\254\346\215\242\345\222\214\350\277\220\347\256\227\347\254\246.md" @@ -0,0 +1,220 @@ +# java基础语法2 + +## 类型转换 + +### 1.隐式转换(自动转换) + + 把一个表示数据范围小的数值或者变量赋值给另一个数据范围大的变量。这种转换方式是自动的,直接写即可。例如: + +```java +double num = 10; //将int类型的10直接赋值给double类型 +System.out.println(num);//输出10.0 +``` + +#### 表示数据范围从小到大为: + +### byte→short(char)→int→long→float→double + +整数默认是int类型,byte、short和char类型数据参与运算均会自动转换int类型。 + +```java +byte b1 = 10; +byte b2 = 20; +byte b3 = b1 + b2; +// 第三行代码会报错,b1和b2会自动转换为int类型,计算结果为int,int赋值给byte需要强制类型转换。 +// 修改为: +int num = b1 + b2; +// 或者: +byte b3 = (byte) (b1 + b2); +``` + +boolean 类型不能与其他基本数据类型相互转换。 + +### 强制转换(理解) + +把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量。 + +​ 强制类型转换格式:目标数据类型 变量名 = (目标数据类型)值或者变量; + +```java +double num1 = 5.5; +int num2 = (int) num1; // 将double类型的num1强制转换为int类型 +System.out.println(num2); // 输出5(小数位直接舍弃) +``` + +### 类型转换案例(理解) + +```java +byte a = 3; +byte b = 4; +byte c = a + b; //错误。因为两个byte变量相加,会先提升为int类型 +byte d = 3 + 4; //正确。常量优化机制 +``` + +**常量优化机制**: + +​ 在编译时,整数常量的计算会直接算出结果,并且会自动判断该结果是否在byte取值范围内, + +- 在:编译通过 + +- 不在:编译失败 + +## 运算符 + +#### 运算符和表达式(了解) + +运算符:对常量或者变量进行操作的符号 + +表达式:用运算符把常量或者变量连接起来符合Java语法的式子就可以称为表达式。 + +​ 不同运算符连接的表达式体现的是不同类型的表达式。 + +举例说明: + +```java +int a = 10; +int b = 20; +int c = a + b; +``` + + +:是运算符,并且是算术运算符。 + + a + b:是表达式,由于+是算术运算符,所以这个表达式叫算术表达式。 a和b称为操作数 + +#### 整数操作只能得到整数,要想得到小数,必须有浮点数参与运算 + +```java +int a = 10; +int b = 3; +System.out.println(a / b); // 输出结果 +System.out.println(a % b); // 输出结果 +``` + +#### 字符的“+”操作(理解) + +```java +// 可以通过使用字符与整数做算术运算,得出字符对应的数值是多少 +char ch1 = 'a'; +System.out.println(ch1 + 1); // 输出98,97 + 1 = 98 + +char ch2 = 'A'; +System.out.println(ch2 + 1); // 输出66,65 + 1 = 66 + +char ch3 = '0'; +System.out.println(ch3 + 1); // 输出49,48 + 1 = 49 +``` + +#### 字符串的“+”操作(理解) + +在”+”操作中,如果出现了字符串,就是连接运算符,否则就是算术运算。当连续进行“+”操作时,从左到右逐个执行。 + +~~~java +System.out.println(1 + 99 + "年白酒"); // 输出:100年白酒 +System.out.println(1 + 2 + "兔子" + 3 + 4); // 输出:3兔子34 // 只要前面有字符串,后面都被污染成字符串 +// 可以使用小括号改变运算的优先级 +System.out.println(1 + 2 + "兔子" + (3 + 4)); // 输出:3兔子7 +~~~ + +#### 数值拆分(应用) + +键盘录入一个三位数,将其拆分为个位,十位,百位,打印在控制台 + +示例代码: + +```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); + } +} +``` + +# 作业 + +### 打印四位数 + +```java +package 数据类型; + import java.util.Scanner; +public class D { + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + System.out.println("请输入一个四位数"); + int num = sc.nextInt(); + int ge = num%10; + int shi = num/10%10; + int bai = num/100%10; + int qian = num/10/10/10; + System.out.println("整数"+num+"个位:"+ge); + System.out.println("整数"+num+"十位:"+shi); + System.out.println("整数"+num+"百位:"+bai); + System.out.println("整数"+num+"千位:"+qian); + } +} +``` + +### 温度转换 + +```java +package 数据类型; +import java.util.Scanner; +public class D { + public static void main(String[] args) { + Scanner ll= new Scanner(System.in); + System.out.println("请输入华氏度"); + double hs = ll.nextDouble(); + double ss = (hs-32)*5/9; + System.out.println("转摄氏度为:"+ss); + System.out.println("请输入摄氏度"); + double ssd = ll.nextDouble(); + double hsd= (ssd*9/5)+32; + System.out.println("转华氏度为:"+hsd); + } +} +``` + +### 扫码器 + +```java +package 数据类型; + +import java.util.Scanner; //导入扫描器对应的java包 + +public class t1 { + public static void main(String[] args) { + String name; + int age; + //让用户输入姓名和年龄,程序员打印他的个人信息 + //创建扫描器 + Scanner sc = new Scanner(System.in); + //打印提示信息,提示用户输入 + System.out.println("请输入您的姓名:"); + //创建对应的变量接收用户的输入 name=sc.next();// next() 表示输入的是字符 + name = sc.next();//也是字符串,但是可以接受一整行,包括空格 + //在打印提示信息,提示用户输入 + System.out.println("请输入您的年龄"); + //创建对应的变量接受用户的输入 + age = sc.nextInt();// nextint() 表示输入的是整数 + // 最后,使用变量,输出最终的结果 + System.out.println("你刚才输入的信息如下:姓名:"+name); + + System.out.println("年龄"+age); + } + +} +``` + -- Gitee From 38a3e506be934674a0df03e74cdf30175d33069d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=94=90=E5=9B=BD=E4=BA=AE?= <647597435@qq.com> Date: Thu, 1 Dec 2022 21:09:55 +0800 Subject: [PATCH 3/3] =?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 --- ...1 \350\277\220\347\256\227\347\254\246.md" | 253 ++++++++++++++++++ 1 file changed, 253 insertions(+) create mode 100644 "19 \345\224\220\345\233\275\344\272\256/20221201 \350\277\220\347\256\227\347\254\246.md" diff --git "a/19 \345\224\220\345\233\275\344\272\256/20221201 \350\277\220\347\256\227\347\254\246.md" "b/19 \345\224\220\345\233\275\344\272\256/20221201 \350\277\220\347\256\227\347\254\246.md" new file mode 100644 index 0000000..df176cc --- /dev/null +++ "b/19 \345\224\220\345\233\275\344\272\256/20221201 \350\277\220\347\256\227\347\254\246.md" @@ -0,0 +1,253 @@ +# 运算符 + +### 赋值运算符 + +| 符号 | 作用 | 说明 | +| ---- | ---------- | :-------------------: | +| = | 赋值 | a=10,将10赋值给变量a | +| += | 加后赋值 | 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 | + +```java +short s = 10;` +`s = s + 10; // 此行代码报出,因为运算中s提升为int类型,运算结果int赋值给short可能损失精度` + +`s += 10; // 此行代码没有问题,隐含了强制类型转换,相当于 s = (short) (s + 10); +``` + +### 关系运算符 + +| 符号 | 说明 | +| ---- | ------------------------------------------------------- | +| == | 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都是true,结果为true,否则为false | +| \| | 逻辑或 | a\|b,a和b都是false,结果为false,否则为true | +| ^ | 逻辑异或 | a^b,a和b结果不同为true,相同为false | +| ! | 逻辑非 | !a,结果和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的值 +``` + +### 三元运算符案例 + +一座寺庙里住着三个和尚,已知他们的身高分别为150cm、210cm、165cm,请用程序实现获取这三个和尚的最高身高。 + +```java +public class OperatorTest02 { + public static void main(String[] args) { + //1:定义三个变量用于保存和尚的身高,单位为cm,这里仅仅体现数值即可。 + int height1 = 150; + int height2 = 210; + int height3 = 165; + //2:用三元运算符获取前两个和尚的较高身高值,并用临时身高变量保存起来。 + int tempHeight = height1 > height2 ? height1 : height2; + //3:用三元运算符获取临时身高值和第三个和尚身高较高值,并用最大身高变量保存。 + int maxHeight = tempHeight > height3 ? tempHeight : height3; + //4:输出结果 + System.out.println("maxHeight:" + maxHeight); + } +} +``` + +# 作业 + +作业3 + +```java +package tgl; + +import java.util.Scanner; + +public class xl { + public static void main(String[] args) { + int hs1=150; + int hs2=210; + int hs3=165; + int tm=hs1 > hs2 ? hs1 : hs2; + int ms=tm >hs3 ? tm : hs3; + System.out.println("ms:"+ms); + } +} +``` + +作业4 + +```java +package tgl; + +import java.util.Scanner; + +public class xl { + public static void main(String[] args) { + int a=10; + int b=20; + System.out.println((a+b) % 3==0 || a==3 || b==3); + } +} +``` + +作业5 + +```java +package tgl; + +import java.util.Scanner; + +public class xl { + public static void main(String[] args) { + int fq=177; + int mq=165; + double er=(fq+mq)*1.08/2; + double nr=((fq*0.923)+165)/2; + System.out.println("儿子:"+er); + System.out.println("女儿:"+nr); + } +} +``` + +作业6 + +```java +package tgl; + +import java.util.Scanner; + +public class xl { + public static void main(String[] args) { + int hc=21; + int lc=24; + hc*=2; + hc+=3; + lc*=2; + System.out.println("hcmm"+hc+"yuan"); + System.out.println("lcmm"+lc+"yuan"); + System.out.println("hc bi lc :" + (hc == lc)); + } +} +``` + +作业7 + +```java +package tgl; + +import java.util.Scanner; + +public class xl { + public static void main(String[] args) { + int r=24; + int h=8; + int m=3; + int rs=16; + double yz=(rs+h+m); + double yh= (r+h+m)*0.8; + System.out.println("第一种"+yh); + System.out.println("第二种"+yz); + System.out.println(yz == yh ? yh : yz); + + } +} +``` \ No newline at end of file -- Gitee