diff --git "a/\345\221\250\345\216\232\350\276\260/Homework/2022\345\271\26411\346\234\21025\346\227\245/2022\345\271\26411\346\234\21025\346\227\245.md" "b/53 \345\221\250\345\216\232\350\276\260/20221125 java\345\217\230\351\207\217.md" similarity index 100% rename from "\345\221\250\345\216\232\350\276\260/Homework/2022\345\271\26411\346\234\21025\346\227\245/2022\345\271\26411\346\234\21025\346\227\245.md" rename to "53 \345\221\250\345\216\232\350\276\260/20221125 java\345\217\230\351\207\217.md" diff --git "a/53 \345\221\250\345\216\232\350\276\260/20221128 java\346\211\253\346\217\217\345\231\250&\350\277\220\347\256\227\347\254\246.md" "b/53 \345\221\250\345\216\232\350\276\260/20221128 java\346\211\253\346\217\217\345\231\250&\350\277\220\347\256\227\347\254\246.md" new file mode 100644 index 0000000000000000000000000000000000000000..19b2b30d8fa37c784f1c002c982896b1b7c3cfcf --- /dev/null +++ "b/53 \345\221\250\345\216\232\350\276\260/20221128 java\346\211\253\346\217\217\345\231\250&\350\277\220\347\256\227\347\254\246.md" @@ -0,0 +1,170 @@ +# 笔记 + +## 扫描器 + +```java +import java.util.Scanner; +public class ScannerDemo { + public static void main(String[] args) { + //创建对象 + Scanner sc = new Scanner(System.in); + //接收数据 + int a = sc.nextInt(); + //输出数据 + System.out.println(a); + } +} +``` + +## 运算符 + +运算符:对常量或者变量进行操作的符号 + +表达式:用运算符把常量或者变量连接起来符合Java语法的式子就可以称为表达式。 + + 不同运算符连接的表达式体现的是不同类型的表达式。 + +举例说明: + +```java +int a = 10; +int b = 20; +int c = a + b; +``` + ++:是运算符,并且是算术运算符。 + +a + b:是表达式,由于+是算术运算符,所以这个表达式叫算术表达式。 + +| 符号 | 作用 | 说明 | +| ---- | ---- | :--------------------------- | +| + | 加 | 参看小学一年级 | +| - | 减 | 参看小学一年级 | +| * | 乘 | 参看小学二年级,与“×”相同 | +| / | 除 | 参看小学二年级,与“÷”相同 | +| % | 取余 | 获取的是两个数据做除法的余数 | + +**注意:** + +1. /和%的区别:两者都做除法, + - / 取结果的商, + - % 取结果的余数。 +2. 整数操作只能得到整数,要想得到小数,必须有浮点数参与运算。 + +```java +int a = 10; +int b = 3; +System.out.println(a / b); // 输出结果 +System.out.println(a % b); // 输出结果 +``` + +> **练习:分别得到123这个数的个位,十位和百位上的数字** + +#### 2.1.3 字符的“+”操作(理解) + +char类型参与算术运算,使用的是计算机底层对应的十进制数值。需要我们记住三个字符对应的数值: + +'a' -- 97 a-z是连续的,所以'b'对应的数值是98,'c'是99,依次递加 + +'A' -- 65 A-Z是连续的,所以'B'对应的数值是66,'C'是67,依次递加 + +'0' -- 48 0-9是连续的,所以'1'对应的数值是49,'2'是50,依次递加 + +```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 +1. byte类型,short类型和char类型将被提升到int类型,不管是否有其他类型参与运算。 +2. 整个表达式的类型自动提升到与表达式中最高等级的操作数相同的类型 +3. 等级顺序:byte,short,char --> int --> long --> float --> double +``` + +例如: + +```java +byte b1 = 10; +byte b2 = 20; +// byte b3 = b1 + b2; // 该行报错,因为byte类型参与算术运算会自动提示为int,int赋值给byte可能损失精度 +int i3 = b1 + b2; // 应该使用int接收 +byte b3 = (byte) (b1 + b2); // 或者将结果强制转换为byte类型 +------------------------------- +int num1 = 10; +double num2 = 20.0; +double num3 = num1 + num2; // 使用double接收,因为num1会自动提升为double类型 +``` + +#### 2.1.4 字符串的“+”操作(理解) + +当“+”操作中出现字符串时,这个”+”是字符串连接符,而不是算术运算。 + +```java +System.out.println("qiuqiu"+ 666); // 输出:qiuqiu666 +``` + +在”+”操作中,如果出现了字符串,就是连接运算符,否则就是算术运算。当连续进行“+”操作时,从左到右逐个执行。 + +```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 a1 { + public static void main(String[] args) { + Scanner sc =new Scanner(System.in); + int num =sc.nextInt(); + int g =(num%10); + int s =(num/10%10); + int b =(num/100%10); + int q =(num/1000); + System.out.println("输入的数字:"); + System.out.println(g+"个位:"); + System.out.println(s+"十位:"); + System.out.println(b+"百位:"); + System.out.println(q+"千位:"); + } +} +``` + +## 摄氏度华氏度互相转换 + +``` java +import java.util.Scanner; + +public class w1 { + public static void main(String[] args) { + System.out.println("摄氏度转换为华氏度\n\n请输入摄氏度:"); + Scanner sc =new Scanner(System.in); + double ssd=sc.nextDouble(); + double hsd=(ssd*9/5+32); + System.out.println("转换后华氏度为:"+hsd); + Scanner Sc =new Scanner(System.in); + double Hsd =Sc.nextDouble(); + double Ssd=(Hsd-32*5/9); + System.out.println("转换后摄氏度为:"+Ssd); + } +} + +``` + diff --git "a/53 \345\221\250\345\216\232\350\276\260/20221130 javaIf\345\217\230\351\207\217.md" "b/53 \345\221\250\345\216\232\350\276\260/20221130 javaIf\345\217\230\351\207\217.md" new file mode 100644 index 0000000000000000000000000000000000000000..bb70dc97aab1a25aec8f41dd34522c98e6c775d7 --- /dev/null +++ "b/53 \345\221\250\345\216\232\350\276\260/20221130 javaIf\345\217\230\351\207\217.md" @@ -0,0 +1,203 @@ +# 20221130 javaIf变量 + +## 笔记 + +#### if语句格式1(理解) + +```java +格式: +if (关系表达式) { + 语句体; +} +``` + +执行流程: + +①首先计算关系表达式的值 + +②如果关系表达式的值为true就执行语句体 + +③如果关系表达式的值为false就不执行语句体 + +④继续执行后面的语句内容 + +示例: + +```java +public class IfDemo { + public static void main(String[] args) { + System.out.println("开始"); + + // 如果年龄大于18岁, 就可以上网吧 + int age = 17; + + if(age >= 18){ + // int a = 10; + System.out.println("可以上网吧"); + } + + System.out.println("结束"); + } +} +``` + +#### 3.3.2 if语句格式2(理解) + +```java +格式: +if (关系表达式) { + 语句体1; +} else { + 语句体2; +} +``` + +执行流程: + +①首先计算关系表达式的值 + +②如果关系表达式的值为true就执行语句体1 + +③如果关系表达式的值为false就执行语句体2 + +④继续执行后面的语句内容 + +示例:奇偶数 + + 任意给出一个整数,请用程序实现判断该整数是奇数还是偶数,并在控制台输出该整数是奇数还是偶数。 + +``` +public class Demo2If { + public static void main(String[] args) { + // 程序判断一个数, 是奇数还是偶数 + int num = 9; + + if(num % 2 == 0){ + System.out.println("偶数"); + }else{ + System.out.println("奇数"); + } + } +} +``` + +#### 3.3.3 if语句格式3(理解) + +```java +格式: +if (关系表达式1) { + 语句体1; +} else if (关系表达式2) { + 语句体2; +} +… +else { + 语句体n+1; +} +``` + +执行流程: + +①首先计算关系表达式1的值 + +②如果值为true就执行语句体1;如果值为false就计算关系表达式2的值 + +③如果值为true就执行语句体2;如果值为false就计算关系表达式3的值 + +④… + +⑤如果没有任何关系表达式为true,就执行语句体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("成绩有误!"); + } + } +} +``` + +#### 3.3.4 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 +import java.util.Scanner; + +public class homework { + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + System.out.println("请输入中国队得分"); + double China = sc.nextDouble(); + Scanner Sc = new Scanner(System.in); + System.out.println("请输入小日本队得分"); + double littleJapan = Sc.nextDouble(); + if (China - littleJapan >= 20) { + System.out.println("奖励十万元!"); + } else if (China - littleJapan >= 10) { + System.out.println("奖励旅游3天!"); + } else if (China - littleJapan >= 5) { + System.out.println("举国欢庆!"); + } + } +} + +``` + diff --git "a/53 \345\221\250\345\216\232\350\276\260/20221130 java\350\257\276\345\240\202\344\275\234\344\270\232.md" "b/53 \345\221\250\345\216\232\350\276\260/20221130 java\350\257\276\345\240\202\344\275\234\344\270\232.md" new file mode 100644 index 0000000000000000000000000000000000000000..d916f6bb3c5467cf7474eb2709d7aea21d882ca3 --- /dev/null +++ "b/53 \345\221\250\345\216\232\350\276\260/20221130 java\350\257\276\345\240\202\344\275\234\344\270\232.md" @@ -0,0 +1,151 @@ +# 20221130 课堂作业 + +#### 3.利用三元运算符求任意三个数中最大者 【三元】 + +```java +import java.util.Scanner; + +public class a1 { + public static void main(String[] args) { + System.out.println("Title:利用三元运算符求任意三个数中最大者 【三元】"); + Scanner a1=new Scanner(System.in); + System.out.println("请输入A的数据"); + double A=a1.nextDouble(); + Scanner b1=new Scanner(System.in); + System.out.println("请输入B的数据"); + double B=b1.nextDouble(); + Scanner c1=new Scanner(System.in); + System.out.println("请输入C的数据"); + double C=c1.nextDouble(); + double D=A>B?A:B; + double E=D>C?D:C; + System.out.println("最大的数为"+E); + }} + +``` + +#### 4.若任意两数和是3的倍数或其中一个为3,则输出true,否者输出false 【断路或】 + +```java +import java.util.Scanner; + +public class _20221125_homework { + public static void main(String[] args) { + System.out.println("请任意输入第一个数字"); + Scanner sc = new Scanner(System.in); + int shuzi1 = sc.nextInt(); + Scanner Sc = new Scanner(System.in); + System.out.println("请输入第二个数字"); + int shuzi2 = Sc.nextInt(); + double add = shuzi1 + shuzi2; + boolean Add = (add % 3 == 0); + System.out.println(Add | shuzi1 == 3 | shuzi2 == 3); + } +} +``` + + + +#### 5.身高是具有遗传性的,子女的身高和父母的身高有一定的关系。假定,父母和子女的身高遗传关系如下: + +> 儿子身高(厘米)=(父亲身高+母亲身高) ×1.08÷2 +> +> 女儿身高(厘米)=(父亲身高×0.923+母亲身高) ÷2 +> +> 现有父亲身高177CM,母亲身高165CM。求子女身高分别预计为多少?【使用变量的定义和算术运算符完成本题】 + +```java +public class _20221201_2 { + public static void main(String[] args) { + System.out.println(" 身高是具有遗传性的,子女的身高和父母的身高有一定的关系。假定,父母和子女的身高遗传关系如下:\n" + + "\n" + + " 儿子身高(厘米)=(父亲身高+母亲身高) ×1.08÷2\n" + + "\n" + + " 女儿身高(厘米)=(父亲身高×0.923+母亲身高) ÷2\n" + + "\n" + + " 现有父亲身高177CM,母亲身高165CM。求子女身高分别预计为多少?【使用变量的定义和算术运算符完成本题】"); + double father=177; + double mom=165; + System.out.println("\n————————————————"); + System.out.println("根据公式得出儿子和女儿的身高:\n儿子:"+(father+mom)*1.08/2+"\n女儿:"+(((father*0.923)+mom)/2)); + } +} + +``` + + + +#### 6.红茶妹妹有21元钱,她攒了几天钱之后自己的钱比原来的两倍还多三块。绿茶妹妹有24元钱,她攒了几天钱之后自己的钱正好是原来的两倍。 + +- 那么红茶和绿茶现在的钱一样多,请问对么?【使用赋值运算符和算术运算符计算各自的钱,使用比较运算符对比大小】 + +```java +public class _20221201_3 { + public static void main(String[] args) { + System.out.println("红茶妹妹有21元钱,她攒了几天钱之后自己的钱比原来的两倍还多三块。绿茶妹妹有24元钱,她攒了几天钱之后自己的钱正好是原来的两倍。"); + int red = 21; + int green = 24; + int red_count = (red * 2 + 3); + int green_count = (green * 2); + System.out.println("经过攒钱后,她们现在各自有\n红茶妹妹:" + red_count + "\n绿茶妹妹:" + green_count); + int size = red_count>green_count ? red_count : green_count; + System.out.println(size); + + } +} + +``` + +#### 7.小明想在食堂打包一份午饭,商家的优惠方式如下:鱼香肉丝单点24元,油炸花生米单点8元,米饭单点3元。订单满30元8折优惠。鱼香肉丝优惠价16元,但是优惠价和折扣不能同时使用。那么这个小伙要点这三样东西,最少要花多少钱?【使用算术运算符、赋值运算符和三元运算符联合完成本题】 + +```java +public class _20221201_04 { + public static void main(String[] args) { +/*小明想在食堂打包一份午饭,商家的优惠方式如下: +鱼香肉丝单点24元, +油炸花生米单点8元, +米饭单点3元。 +订单满30元8折优惠。 +鱼香肉丝优惠价16元,但是优惠价和折扣不能同时使用。 +那么这个小伙要点这三样东西,最少要花多少钱? +【使用算术运算符、赋值运算符和三元运算符联合完成本题】 + */ + int fish = 24; + int Fish = 16; + int huasheng = 8; + int rice = 3; + System.out.println("若使用8折优惠结果如下:"); + int count = (fish + huasheng + rice); + boolean judge = count >= 30; + System.out.println("是否满足使用8折优惠\n若为true则为满足,否则不满足" + judge); + double discountAfter = count * 0.8; + System.out.println("优惠后的价格:" + discountAfter + "元"); + System.out.println("若不使用8折优惠,鱼香肉丝优惠价16元,结果如下:"); + double Count = (Fish + huasheng + rice); + System.out.println("优惠后的价格:" + Count + "元"); + double compare = Count < discountAfter ? Count : discountAfter; + System.out.println("最少要花" + compare + "元"); + + } +} + +``` + + + +#### 8.直接写出答案。 对于以下,有int x = 5, y = 6, z; + 题目1:z = ++x + y++; + + 题目2:z = ++x + x++; + + 题目3:x = ++x + x++; + + 题目4:z = x > y ? ++x : y++; + +```java +1、12 +2、11 +3、11 +4、12 +``` +