From bd3c8110dece9d90da5a68d69fd19bd96bc25f01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=94=A1=E5=98=89=E4=B9=90?= <3196825236@qq.com> Date: Tue, 29 Nov 2022 22:44:33 +0800 Subject: [PATCH 1/3] =?UTF-8?q?java=E5=9F=BA=E7=A1=80=E8=AF=AD=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...55\346\263\225\347\254\224\350\256\260.md" | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 "13\345\217\267\350\224\241\345\230\211\344\271\220/20221129 java\345\237\272\347\241\200\350\257\255\346\263\225\347\254\224\350\256\260.md" diff --git "a/13\345\217\267\350\224\241\345\230\211\344\271\220/20221129 java\345\237\272\347\241\200\350\257\255\346\263\225\347\254\224\350\256\260.md" "b/13\345\217\267\350\224\241\345\230\211\344\271\220/20221129 java\345\237\272\347\241\200\350\257\255\346\263\225\347\254\224\350\256\260.md" new file mode 100644 index 0000000..cbbfed0 --- /dev/null +++ "b/13\345\217\267\350\224\241\345\230\211\344\271\220/20221129 java\345\237\272\347\241\200\350\257\255\346\263\225\347\254\224\350\256\260.md" @@ -0,0 +1,155 @@ +### 笔记 + +1.**变量的注意事项** + +1. 在同一对花括号中,变量名不能重复。 + +2. 变量在使用之前,必须初始化(赋值)。 + +3. 定义long类型的变量时,需要在整数的后面加L(大小写均可,建议大写)。因为整数默认是int类型,整数太大可能超出int范围。 + +4. 定义float类型的变量时,需要在小数的后面加F(大小写均可,建议大写)。因为浮点数的默认类型是double, double的取值范围是大于float的,类型不兼容。 + + 2.**键盘录入** + + 1.通过 Scanner 类来获取用户的输入 + + 1..导包 + + 2.创建Scanner对象 + + 3.接收数据 + +基础语法 + + + +整数默认是int类型,byte、short和char类型数据参与运算均会自动转换为int类型。 + +**强制转换** + +```java +doublenum1=5.5; +intnum2=(int)num1;//将double类型的num1强制转换为int类型System.out.println(num2);//输出5(小数位直接舍弃) +``` + +1.**类型转换案例** + +````java +bytea=3; +byteb=4; +bytec=a+b;//错误。因为两个byte变量相加,会先提升为int类型byted=3+4;//正确。常量优化机制 +```` + + + +**常量优化机制**: + +在编译时,整数常量的计算会直接算出结果,并且会自动判断该结果是否在byte取值范围内, + +在:编译通过不 + +在:编译失败 + + + +**字符的****“+”****操作(理解)** + +char类型参与算术运算,使用的是计算机底层对应的十进制数值。需要我们记住三个字符对应的数值: + +'a' -- 97 a-z是连续的,所以'b'对应的数值是98,'c'是99,依次递加 + +'A' -- 65 A-Z是连续的,所以'B'对应的数值是66,'C'是67,依次递加 + +'0' -- 480-9是连续的,所以'1'对应的数值是49,'2'是50,依次递加 + +```java +//可以通过使用字符与整数做算术运算,得出字符对应的数值是多少charch1='a'; +System.out.println(ch1+1);//输出98,97+1=98 + +charch2='A'; +System.out.println(ch2+1);//输出66,65+1=66 + +charch3='0'; +System.out.println(ch3+1);//输出49,48+1=49 +``` + + + +算术表达式中包含不同的基本数据类型的值的时候,整个算术表达式的类型会自动进行提升。 + +**提升规则:** + +```java +1.byte类型,short类型和char类型将被提升到int类型,不管是否有其他类型参与运算。2.整个表达式的类型自动提升到与表达式中最高等级的操作数相同的类型   +3. 等级顺序:byte,short,char-->int-->long-->float-->double +``` + +例如: + +```java +byteb1=10; +byteb2=20; +//byteb3=b1+b2;//该行报错,因为byte类型参与算术运算会自动提示为int,int赋值给byte可能损失精度 +inti3=b1+b2;//应该使用int接收 +byteb3=(byte)(b1+b2);//或者将结果强制转换为byte类型 +------------------------------- +intnum1=10; +doublenum2=20.0; +doublenum3=num1+num2;//使用double接收,因为num1会自动提升为double类型 +``` + + + + + + + + + + + + + +#### 作业 + +```java +import java.util.Scanner; + +public class A1mmm { + public static void main(String[] args) { + Scanner input= new Scanner(System.in); + System.out.println("请输入四位数"); + int number = input.nextInt(); + int q =number/1000; + int b =number%1000/100; + int s = number%100%100/10; + int g =number%100%100%10; + System.out.println("千位"+q); + System.out.println("百位"+b); + System.out.println("十位"+s); + System.out.println("个位"+g); + + + } +} + +``` + +```java +import java.util.Scanner; + +public class B2mmm { + public static void main(String[] args) { + Scanner input = new Scanner(System.in); + System.out.println("摄氏度转华氏温度"); + int a = input.nextInt(); + int b = a*9/5+32; + System.out.println(b); + + + } + } + +``` + -- Gitee From 4e097b6325dc1fd115bf8f4a5926970b7cf804ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=94=A1=E5=98=89=E4=B9=90?= <3196825236@qq.com> Date: Thu, 1 Dec 2022 21:38:37 +0800 Subject: [PATCH 2/3] =?UTF-8?q?13=E5=8F=B7=E8=94=A1=E5=98=89=E4=B9=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...46\345\222\214\344\275\234\344\270\232.md" | 419 ++++++++++++++++++ 1 file changed, 419 insertions(+) create mode 100644 "13\345\217\267\350\224\241\345\230\211\344\271\220/2022121 java\345\205\263\347\263\273\350\277\220\347\256\227\347\254\246\345\222\214\344\275\234\344\270\232.md" diff --git "a/13\345\217\267\350\224\241\345\230\211\344\271\220/2022121 java\345\205\263\347\263\273\350\277\220\347\256\227\347\254\246\345\222\214\344\275\234\344\270\232.md" "b/13\345\217\267\350\224\241\345\230\211\344\271\220/2022121 java\345\205\263\347\263\273\350\277\220\347\256\227\347\254\246\345\222\214\344\275\234\344\270\232.md" new file mode 100644 index 0000000..2bddcc2 --- /dev/null +++ "b/13\345\217\267\350\224\241\345\230\211\344\271\220/2022121 java\345\205\263\347\263\273\350\277\220\347\256\227\347\254\246\345\222\214\344\275\234\344\270\232.md" @@ -0,0 +1,419 @@ +# 1.关系运算符(应用) + +运算符有6种关系,分别为小于、小于等于、大于、等于、大于等于、不等于 + +| 符号 | 说明 | +| ---- | ------------------------------------------------------- | +| == | 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 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 +``` + + + +# 3.短路逻辑运算符 + +| 符号 | 作用 | 说明 | +| ---- | ------ | ---------------------------- | +| && | 短路与 | 作用和&相同,但是有短路效果 | +| \|\| | 短路或 | 作用和\|相同,但是有短路效果 | + +在逻辑与运算中,只要有一个表达式的值为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 +``` + +# 4. 三元运算符案例(重点 有点不会) + +三元运算符语法格式: + +```java +关系表达式 ? 表达式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); + } +} +``` + +# 5.if 语句 + +```java +格式: +if (关系表达式) { + 语句体; +} +``` + +示例 + +public class IfDemo { + public static void main(String[] args) { + System.out.println("开始"); + +```java + // 如果年龄大于18岁, 就可以上网吧 + int age = 17; + + if(age >= 18){ + // int a = 10; + System.out.println("可以上网吧"); + } + + System.out.println("结束"); +} +``` + + +```java +格式: +if (关系表达式) { + 语句体1; +} else { + 语句体2; +} +``` + +示例:奇偶数 + +```java +public class Demo2If { + public static void main(String[] args) { + // 程序判断一个数, 是奇数还是偶数 + int num = 9; + + if(num % 2 == 0){ + System.out.println("偶数"); + }else{ + System.out.println("奇数"); + } + } +} +``` + + + +```java +格式: +if (关系表达式1) { + 语句体1; +} else if (关系表达式2) { + 语句体2; +} +… +else { + 语句体n+1; +} +``` + + + +示例: + +​ 定义一个在0~100之间的变量a, 90~100优秀,80~89良好,70~79中等,60~69及格,0~59请努力加油! + +````java +public class Demo3If { + public static void main(String[] args){ + int score = 65; + if(score >= 90 && score <= 100){ + System.out.println("优秀"); + }else if (score >= 80 && score <= 89){ + System.out.println("良好"); + }else if (score >= 70 && score <= 79){ + System.out.println("中等"); + }else if (score >= 60 && score <= 69){ + System.out.println("及格"); + }else if (score >= 0 && score <= 59){ + System.out.println("请努力加油"); + }else{ + System.out.println("成绩有误!"); + } + } +} +```` + + + + + +#### if语句格式3案例(应用) + +需求:小明快要期末考试了,小明爸爸对他说,会根据他不同的考试成绩,送他不同的礼物,假如你可以控制小明的得分,请用程序实现小明到底该获得什么样的礼物,并在控制台输出。 + +分析: + +​ ①小明的考试成绩未知,可以使用键盘录入的方式获取值 + +​ ②由于奖励种类较多,属于多种判断,采用if...else...if格式实现 + +​ ③为每种判断设置对应的条件 + +​ ④为每种判断设置对应的奖励 + + + +```java +import java.util.Scanner; +public class IfTest02 { + public static void main(String[] args){ + // 1. 使用Scanner录入考试成绩 + Scanner sc = new Scanner(System.in); + System.out.println("请输入您的成绩:"); + int score = sc.nextInt(); + // 2. 判断成绩是否在合法范围内 0~100 + if(score >=0 && score <= 100){ + // 合法成绩 + // 3. 在合法的语句块中判断成绩范围符合哪一个奖励 + if(score >= 95 && score <= 100){ + System.out.println("自行车一辆"); + }else if(score >= 90 && score <= 94){ + System.out.println("游乐场一次"); + }else if(score >= 80 && score <= 89){ + System.out.println("变形金刚一个"); + }else { + System.out.println("挨顿揍, 这座城市又多了一个伤心的人~"); + } + }else{ + // 非法的话, 给出错误提示 + System.out.println("您的成绩输入有误!"); + } + } +} +``` + + + + + +# 作业 + +```java +public class Ammm3 { + public static void main(String[] args) { + //两个值求最大 + int num1=78; + int num2=56; + int max=(num1>num2)?num1:num2; + System.out.println("max="+max); + + //三个值求最大 + int x=89; + int y=55; + int z=23; + int a=(x>=y)?x:y; + int b=(a>=z)?a:z; + System.out.println("max="+b); + + + } +} + +``` + + + +```java +public class Bmmm { + public static void main(String[] args) { + double father =177; + double mother =165; + double nh = ((father+mother)*1.08/2); + double nv =((father*0.923+mother)/2); + System.out.println("男孩身高"+nh+"厘米"); + System.out.println("女孩身高"+nv+"厘米"); + } + + +} +``` + + + +```java +public class Cmmm { + public static void main(String[] args) { + //定义红茶妹妹原来的钱 + int red = 21; + //定义绿茶妹妹原来的钱 + int green = 24; + //求红茶妹妹现有的钱 + red = red * 2 + 3; + //求绿茶妹妹现有的钱 + green *= 2; + //判断并输出两个人的钱是否相等 + System.out.println(red == green); + + } +} +``` + + + +```java +import java.util.Scanner; + +public class Fmmm { + public static void main(String[] args) { + System.out.println("请输入鱼香肉丝价格"); + double a = new Scanner(System.in).nextDouble(); + System.out.println("请输入油炸花生米价格"); + double b = new Scanner(System.in).nextDouble(); + System.out.println("请输入米饭价格"); + double c = new Scanner(System.in).nextDouble(); + best(a,b,c); + } + static void best(double a,double b,double c) { + //优惠一 + double zj = a + b + c; + double one = (zj >= 30 ? zj * 0.8 : zj); + //优惠二 + a = 16.00; + double two = a + b + c; + System.out.println("第一种优惠核算" + one + "第二种优惠核算" + two); + if (one > two) { + System.out.println("第二种优惠划算"); + } else if (one == two) { + System.out.println("两种优惠花一样多的钱"); + } else { + System.out.println("第一种优惠划算"); + + } + } +} +``` + + + +```java +import java.util.Scanner; + +public class Emmm { + public static void main(String[] args) { + Scanner in = new Scanner(System.in); + int x , y; + boolean result; + System.out.println("请输入第一个数字:"); + x = in.nextInt(); + System.out.println("请输入第二个数字:"); + y = in.nextInt(); + result = ((x + y) % 3 == 0) || x == 3 || y == 3; + System.out.println(result); + + } +} + +``` + +```java +import java.util.Scanner; + +public class Gmmm { + public static void main(String[] args) { + Scanner input = new Scanner(System.in); + System.out.println("中国队进球数"); + int a = input.nextInt(); + System.out.println("日本队进球数"); + int b= input.nextInt(); + + if(a>b){ + System.out.println("中国队赢"); + } + System.out.println("日本队赢"); + } +} + +``` + -- Gitee From f320df5ecf68f05432cb094850941a7a8db58fbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=94=A1=E5=98=89=E4=B9=90?= <3196825236@qq.com> Date: Thu, 1 Dec 2022 21:54:55 +0800 Subject: [PATCH 3/3] =?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 --- ...55\346\263\225\347\254\224\350\256\260.md" | 155 ------------------ .../\347\254\224\350\256\260.md" | 42 ----- 2 files changed, 197 deletions(-) delete mode 100644 "13\345\217\267\350\224\241\345\230\211\344\271\220/20221129 java\345\237\272\347\241\200\350\257\255\346\263\225\347\254\224\350\256\260.md" delete mode 100644 "13\345\217\267\350\224\241\345\230\211\344\271\220/\347\254\224\350\256\260.md" diff --git "a/13\345\217\267\350\224\241\345\230\211\344\271\220/20221129 java\345\237\272\347\241\200\350\257\255\346\263\225\347\254\224\350\256\260.md" "b/13\345\217\267\350\224\241\345\230\211\344\271\220/20221129 java\345\237\272\347\241\200\350\257\255\346\263\225\347\254\224\350\256\260.md" deleted file mode 100644 index cbbfed0..0000000 --- "a/13\345\217\267\350\224\241\345\230\211\344\271\220/20221129 java\345\237\272\347\241\200\350\257\255\346\263\225\347\254\224\350\256\260.md" +++ /dev/null @@ -1,155 +0,0 @@ -### 笔记 - -1.**变量的注意事项** - -1. 在同一对花括号中,变量名不能重复。 - -2. 变量在使用之前,必须初始化(赋值)。 - -3. 定义long类型的变量时,需要在整数的后面加L(大小写均可,建议大写)。因为整数默认是int类型,整数太大可能超出int范围。 - -4. 定义float类型的变量时,需要在小数的后面加F(大小写均可,建议大写)。因为浮点数的默认类型是double, double的取值范围是大于float的,类型不兼容。 - - 2.**键盘录入** - - 1.通过 Scanner 类来获取用户的输入 - - 1..导包 - - 2.创建Scanner对象 - - 3.接收数据 - -基础语法 - - - -整数默认是int类型,byte、short和char类型数据参与运算均会自动转换为int类型。 - -**强制转换** - -```java -doublenum1=5.5; -intnum2=(int)num1;//将double类型的num1强制转换为int类型System.out.println(num2);//输出5(小数位直接舍弃) -``` - -1.**类型转换案例** - -````java -bytea=3; -byteb=4; -bytec=a+b;//错误。因为两个byte变量相加,会先提升为int类型byted=3+4;//正确。常量优化机制 -```` - - - -**常量优化机制**: - -在编译时,整数常量的计算会直接算出结果,并且会自动判断该结果是否在byte取值范围内, - -在:编译通过不 - -在:编译失败 - - - -**字符的****“+”****操作(理解)** - -char类型参与算术运算,使用的是计算机底层对应的十进制数值。需要我们记住三个字符对应的数值: - -'a' -- 97 a-z是连续的,所以'b'对应的数值是98,'c'是99,依次递加 - -'A' -- 65 A-Z是连续的,所以'B'对应的数值是66,'C'是67,依次递加 - -'0' -- 480-9是连续的,所以'1'对应的数值是49,'2'是50,依次递加 - -```java -//可以通过使用字符与整数做算术运算,得出字符对应的数值是多少charch1='a'; -System.out.println(ch1+1);//输出98,97+1=98 - -charch2='A'; -System.out.println(ch2+1);//输出66,65+1=66 - -charch3='0'; -System.out.println(ch3+1);//输出49,48+1=49 -``` - - - -算术表达式中包含不同的基本数据类型的值的时候,整个算术表达式的类型会自动进行提升。 - -**提升规则:** - -```java -1.byte类型,short类型和char类型将被提升到int类型,不管是否有其他类型参与运算。2.整个表达式的类型自动提升到与表达式中最高等级的操作数相同的类型   -3. 等级顺序:byte,short,char-->int-->long-->float-->double -``` - -例如: - -```java -byteb1=10; -byteb2=20; -//byteb3=b1+b2;//该行报错,因为byte类型参与算术运算会自动提示为int,int赋值给byte可能损失精度 -inti3=b1+b2;//应该使用int接收 -byteb3=(byte)(b1+b2);//或者将结果强制转换为byte类型 -------------------------------- -intnum1=10; -doublenum2=20.0; -doublenum3=num1+num2;//使用double接收,因为num1会自动提升为double类型 -``` - - - - - - - - - - - - - -#### 作业 - -```java -import java.util.Scanner; - -public class A1mmm { - public static void main(String[] args) { - Scanner input= new Scanner(System.in); - System.out.println("请输入四位数"); - int number = input.nextInt(); - int q =number/1000; - int b =number%1000/100; - int s = number%100%100/10; - int g =number%100%100%10; - System.out.println("千位"+q); - System.out.println("百位"+b); - System.out.println("十位"+s); - System.out.println("个位"+g); - - - } -} - -``` - -```java -import java.util.Scanner; - -public class B2mmm { - public static void main(String[] args) { - Scanner input = new Scanner(System.in); - System.out.println("摄氏度转华氏温度"); - int a = input.nextInt(); - int b = a*9/5+32; - System.out.println(b); - - - } - } - -``` - diff --git "a/13\345\217\267\350\224\241\345\230\211\344\271\220/\347\254\224\350\256\260.md" "b/13\345\217\267\350\224\241\345\230\211\344\271\220/\347\254\224\350\256\260.md" deleted file mode 100644 index b0fe1d2..0000000 --- "a/13\345\217\267\350\224\241\345\230\211\344\271\220/\347\254\224\350\256\260.md" +++ /dev/null @@ -1,42 +0,0 @@ -数值类型分为 - -整数(byte,short,int,long) - -浮点数(float,double) - -字符(char) - - - -非数值型 布尔(boolean) - - - -默认值 - -整数:int - -浮点型:double - -字符串 string - - - -变量的定义格式 - -# 格式:数据类型 变量名=变量值 - -示范;int price =998 - -#变量使用 1.输出使用 2.修改值 - -1.什么是变量 - -就是内存中的存储空间 - -空间中存储的数据是可以发生改变 - - - - - -- Gitee