diff --git "a/04 \346\235\216\346\230\216\345\201\245/20221126 \345\217\230\351\207\217.md" "b/04 \346\235\216\346\230\216\345\201\245/20221126 \345\217\230\351\207\217.md" new file mode 100644 index 0000000000000000000000000000000000000000..129898157d0e325aa286b7c1332c9e5193be3cdf --- /dev/null +++ "b/04 \346\235\216\346\230\216\345\201\245/20221126 \345\217\230\351\207\217.md" @@ -0,0 +1,70 @@ +# java + +## 数字类型 + +1.字符 + +```java +char sex ='男'; +``` + + + +2.整数 + +```java +byte short int[默认] long +``` + + + +3.小数 + +```java +float double[默认] +``` + + + +4.字符串 + +```java +String +``` + + + +5.布尔 + +```java +boolean +``` + +## 变量 + +1.格式:数字类型 变量名 = 变量值; 例:int price = 998 + +2.注意事项:(1)变量名不能重复 (2)变量未赋值,不能使用 + +​ (3)定义long类型变量,数据后面加L 以此类推 + +## 关键字 + +1.什么是关键字被: Java语言赋予了特定含义的单词 + +2.特点:全部小写 常用的代码编辑器,有特殊的颜色标记 + +## 作业 + +```java +public class work { + public static void main(String[] args) { + System.out.println("我爱2班"); + System.out.println("我爱念哥"); + String tell=("念哥真帅,"); + String tell1=("年年十八"); + System.out.println(tell+"念念十八"+tell1); + } +} +``` + diff --git "a/04 \346\235\216\346\230\216\345\201\245/20221128 \345\237\272\347\241\200\350\257\255\346\263\225.md" "b/04 \346\235\216\346\230\216\345\201\245/20221128 \345\237\272\347\241\200\350\257\255\346\263\225.md" new file mode 100644 index 0000000000000000000000000000000000000000..3e119a11ff49909b407ca8cc483990dfa3d3a4ab --- /dev/null +++ "b/04 \346\235\216\346\230\216\345\201\245/20221128 \345\237\272\347\241\200\350\257\255\346\263\225.md" @@ -0,0 +1,74 @@ +### 强制转换 + +把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量。 强制类型转换格式:目标数据类型 变量名 = (目标数据类型)值或者变量; 会丢包) + +``` java +double num1 = 5.5; +int num2 = (int) num1; // 将double类型的num1强制转换为int类型 +System.out.println(num2); // 输出5(小数位直接舍弃) +``` + +### 运算符和表达式 + +运算符:对常量或者变量进行操作的符号 + +表达式:用运算符把常量或者变量连接起来符合Java语法的式子就可以称为表达式。 + + +:是运算符,并且是算术运算符。 + +a + b:是表达式,由于+是算术运算符,所以这个表达式叫算术表达式。 a和b称为操作数 + +### Java Scanner类(键盘录入) + +``` java +import java.util.Scanner;// 在外面写(可Scanner回车自动生成) +Scanner sc =new Scanner(System.in);// 接收器 +System.out.println("");// 提示语 +String name = sc.nextString();// 变量存放接收 +System.out println("");// 输出 +``` + +### 作业 + +##### 拆分四位数 + +``` java +import java.util.Scanner; +public class a { + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + System.out.println("请输入一个四位数:"); + int number= sc.nextInt(); + + int ge=(number%10); + int shi=(number/10%10); + int bai=(number/100%10); + int qian=(number/1000); + System.out.println(number+"的个位数是:"+ge); + System.out.println("十位数是:"+shi); + System.out.println("百位数是:"+bai); + System.out.println("千位数是:"+qian); + } +} +``` + +##### 华氏度与摄氏度的转换 + +``` java +import java.util.Scanner; +public class b { + public static void main(String[] args) { + Scanner sc =new Scanner(System.in); + System.out.println("请输入一个华氏温度:"); + double hswd=sc.nextDouble(); + double sswd=((hswd-32)*5/9); + System.out.println(hswd+"℉转摄氏温度为:"+sswd+"℃"); + + System.out.println("请输入一个摄氏温度:"); + double ssw=sc.nextDouble(); + double hsw=(ssw*9/5+32); + System.out.println(ssw+"℃转华氏温度为:"+hsw+"℉"); + } +} +``` + diff --git "a/04 \346\235\216\346\230\216\345\201\245/20221201 \345\237\272\346\234\254\350\277\220\347\256\227\347\254\246.md" "b/04 \346\235\216\346\230\216\345\201\245/20221201 \345\237\272\346\234\254\350\277\220\347\256\227\347\254\246.md" new file mode 100644 index 0000000000000000000000000000000000000000..a157739cf91e6f916910c646267765ca8095b590 --- /dev/null +++ "b/04 \346\235\216\346\230\216\345\201\245/20221201 \345\237\272\346\234\254\350\277\220\347\256\227\347\254\246.md" @@ -0,0 +1,157 @@ +## 1.自增自减运算符 + +#### 自增:符号++ 变量值加1 如:a=1 a++=1+1=2 + +#### 自减:符号 - - 变量值减1 如:a=1 a- -=1-1=0 + +单独使用时 ++和-- 放在变量的前边还是后边,结果是不变的。 + +赋值运算时 ++在后面先赋值再自增 如: + +``` java +int x = 10; +int y = x++; +System.out.println("x:" + x + ", y:" + y); // x:11,y:10 +``` + +赋值运算时 ++在前面先自增再赋值 如: + +``` java +int m = 10; +int n = ++m; +System.out.println("m:" + m + ", n:" + n); // m:11,n:11 +``` + +例题 + +``` java +int i =1;int j; +j=i++*2+3*--i;//因为i在前,所以此时i没有自增,1*2计算后 i自增为2 + //后面i在后先自减,因为i=2,所以--i为1 即:1*2+3*1=5 i=1;j=5 +``` + +## 2.赋值运算符 + + 赋值 = (a=10,将10赋值给变量a) + +加后赋值 += (a+=b,将a+b的值给a a = a+b;) + +减后赋值 -= (a-=b,将a-b的值给a a=a-b;) + +乘后赋值 *= (a*=b*,将*a×b*的值给*a a=a*b) 扩展的赋值运算符隐含了强制类型转换 + +除后赋值 /= (a/=b,将a÷b的商给a a=a/b;) + +取余后赋值 %= (a%=b,将a÷b的余数给a a=a%b;) + +## 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; // 判断 a>b 是否为真,如果为真取a的值,如果为假,取b的值 +``` + +## 7.分支结构之if语句 + +``` java +格式1: + if (关系表达式) { + 语句体; +} +``` + +``` java +格式2: +if (关系表达式) { + 语句体1; +} else { + 语句体2; +} +``` + +``` java +格式3: +if (关系表达式1) { + 语句体1; +} else if (关系表达式2) { + 语句体2; +} +… +else { + 语句体n+1; +} +``` + + + +## 作业 + +#### 中日足球比赛 + +``` java +import java.util.Scanner; + +public class D6 { + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + System.out.println("请输入中国得分:"); + int china = sc.nextInt(); + System.out.println("请输入日本得分:"); + int rz = sc.nextInt(); + System.out.println("现在比分" + china + ":" + rz); + if (china + rz > 6 | china + rz < 0) { + System.out.println("不可能,想什么呢?"); + } else if (china - rz == 0) { + System.out.println("打平了,奖励海鲜套餐"); + } else if (china - rz == 1) { + System.out.println("领先一分,奖励一辆奥迪"); + } else if (china - rz == 2) { + System.out.println("领先二分,奖励北京一套房"); + }else if(china - rz == 3){ + System.out.println("领先三分,奖励海景别墅一套"); + } + } +} +``` + diff --git "a/04 \346\235\216\346\230\216\345\201\245/20221202 switch\345\210\207\346\215\242.md" "b/04 \346\235\216\346\230\216\345\201\245/20221202 switch\345\210\207\346\215\242.md" new file mode 100644 index 0000000000000000000000000000000000000000..467841878cb4a897900c7fe1f9fb0a5ad4f3b790 --- /dev/null +++ "b/04 \346\235\216\346\230\216\345\201\245/20221202 switch\345\210\207\346\215\242.md" @@ -0,0 +1,131 @@ +## switch语句 + +格式: + +``` java +switch (表达式) { + case 1: + 语句体1; + break; + case 2: + 语句体2; + break; + ... + default: + 语句体n+1; + break; +``` + +## switch语句case穿透 + +例: + +``` java +/* +case穿透是如何产生的? +如果switch语句中,case省略了break语句, 就会开始case穿透. +现象: +当开始case穿透,后续的case就不会具有匹配效果,内部的语句都会执行 +直到看见break,或者将整体switch语句执行完毕,才会结束。 +*/ +public static void main(String[] args){ +Scanner sc = new Scanner(System.in); +System.out.println("请输入星期数:"); +int week = sc.nextInt(); + switch(week){ + case 1: + case 2: + case 3: + case 4: + case 5: + System.out.println("工作日"); + break; + case 6: + case 7: + System.out.println("休息日"); + break; + default: + System.out.println("您的输入有误"); + break; + } + } +} +``` + +## 作业 + +### 1,计算出租车车费 + +``` java +import java.util.Scanner; +// 计算出租车车费 +public class D7 { + public static void main(String[] args) { + while (true){ + Scanner sc = new Scanner(System.in); + System.out.println("请输入乘车的车型:"); + String car = sc.next(); + System.out.println("请输入行车千里数:"); + double km = sc.nextDouble(); + double a = 3 + ((km - 3000) * 0.0021); + double b = 4 + ((km - 3000) * 0.0024); + double c = 5 + ((km - 3000) * 0.0027); + switch (car) { + case "夏利": + if (km < 3000) { + System.out.println("类型:夏利" + " " + km + "米" +" "+ "花费3元"); + } else{ + System.out.println("类型:夏利" + " " + km + "米" +" "+ "花费" + a + "元");} + break; + case "富康": + if (km < 3000) { + System.out.println("类型:富康" + " " + km + "米" +" "+ "花费4元"); + } else{ + System.out.println("类型:富康" + " " + km + "米" +" "+ "花费" + b + "元");} + break; + case "桑塔纳": + if (km < 3000) { + System.out.println("类型:桑塔纳" + " " + km + "米" +" "+ "花费5元"); + } else{ + System.out.println("类型:桑塔纳" + " " + km + "米" +" "+ "花费" + c + "元");} + break; + default: + System.out.println("想啥呢?"); + } + } + } +} +``` + +### 判断闰年 + +``` java +import java.util.Scanner; +//判断闰年 +public class D8 { + public static void main(String[] args) { + Scanner sc=new Scanner(System.in); + System.out.println("请输入一个年份如:(2022)"); + int year = sc.nextInt(); + System.out.println("请输入一个月份如:(3)"); + int mon = sc.nextInt(); + System.out.println("请输入几号如:(3)"); + int day = sc.nextInt(); + + if (year%4==0 && mon<=3 && mon>=0){ + day= (mon-1)*30+day; + System.out.println("闰年 是今年的第"+day); + }else if(year%4==0 && mon>3 & mon<=12 ){ + day= (mon-1)*30+day+1; + System.out.println("闰年 是今年的第"+day); + }else{ + System.out.println("不是闰年"); + } + } +} +``` + + + + + diff --git "a/04 \346\235\216\346\230\216\345\201\245/20221204 for\345\276\252\347\216\257.md" "b/04 \346\235\216\346\230\216\345\201\245/20221204 for\345\276\252\347\216\257.md" new file mode 100644 index 0000000000000000000000000000000000000000..371b100739c27d7dbe1c182c0f214640aea7a890 --- /dev/null +++ "b/04 \346\235\216\346\230\216\345\201\245/20221204 for\345\276\252\347\216\257.md" @@ -0,0 +1,72 @@ +## for循环 + +#### 1.循环语句-for循环 + +(1)循环: + +循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环 + +体语句,当反复 执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循 + +环,否则循环将一直执行下去,形 成死循环。 + +(2)格式: + +``` java +for (初始化语句;条件判断语句;条件控制语句) { + 循环体语句; +} +``` + +(3) 格式解释: + +​ 初始化语句: 用于表示循环开启时的起始状态,简单说就是循环开始的时候什么样 + +​ 条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去 + +​ 循环体语句: 用于表示循环反复执行的内容,简单说就是循环反复执行的事情 + +​ 条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去 + +## 作业 + +##### 1.让用户输入一个数字,根据这个数字,循环输出"我爱学习,我爱java",比如,用户输入数字 9 就在控制台输出9行"我爱学习,我爱java" + +``` java +import java.util.Scanner; +// 1. 让用户输入一个数字,根据这个数字,循环输出"我爱学习,我爱java", +// 比如,用户输入数字 9 就在控制台输出9行"我爱学习,我爱java" +public class D10 { + public static void main(String[] args) { + String a="我爱学习,我爱java"; + Scanner sc=new Scanner(System.in); + System.out.println("请输入一个整数:"); + int nub= sc.nextInt(); + for(int i=1;i<=nub;i++){ +``` + +##### 2.用户分别输入数 a,数b,让程序实现从a 开始循环到b.输出"有生之年,能看到中国队出现吗?" + +``` java +import java.util.Scanner; +// 用户分别输入数 a,数b,让程序实现从a 开始循环到b.输出"有生之年,能看到中国队出现吗?" +public class D11 { + public static void main(String[] args) { + int j=0; + Scanner sc=new Scanner(System.in); + System.out.println("请输入开始值:"); + int a= sc.nextInt(); + System.out.println("请输入结束值:"); + int b= sc.nextInt(); + + for(int i=a; i=100; i--) { + boolean a=(555555 %i == 0); + if(a==true){ + System.out.println("555555的约数中最大的三位数是:"+i++); + break; + } + } + } +} +``` + +2. 猜数字游戏。由系统随机生成一个随机数字(0~99)之间,生成方法为 int num=new Random().nextInt(100)。用户去猜测,如果太大,系统将提示 “你猜的数字太大了!再猜”, + + 太小则提示 “你猜的数字太小了,再猜”,猜中则提示 “恭喜你,猜对了!”。 + + 猜数字的过程中需要统计用户猜测次数,如果用户一次性猜对,提示 “你太厉害了,一次就猜对”, + + 2~6次提示 “你很聪明!”,6次以上才猜对的话,提示 “笨笨,你猜这么多次!” + +``` java +import java.io.Reader; +import java.util.Random; +import java.util.Scanner; + //猜数字游戏。由系统随机生成一个随机数字(0~99)之间,生成方法为 int num=new Random().nextInt(100)。用户去猜测, + //如果太大,系统将提示 “你猜的数字太大了!再猜”,太小则提示 “你猜的数字太小了,再猜”,猜中则提示 “恭喜你,猜对了!”。 + //猜数字的过程中需要统计用户猜测次数,如果用户一次性猜对,提示 “你太厉害了,一次就猜对”, + //2~6次提示 “你很聪明!”,6次以上才猜对的话,提示 “笨笨,你猜这么多次!” +public class Q4 { + public static void main(String[] args) { + int num=new Random().nextInt(100); + Scanner sc=new Scanner(System.in); + int ans=0; + while (ans<100) { + ans++; + System.out.println("请猜一个0-99的数字:"); + int a = sc.nextInt(); + + if (a < num) { + System.out.println("你猜的太小了,再猜"); + }else if(a>num){ + System.out.println("你猜的太大了,再猜"); + }else if(ans==1 && a==num){ + System.out.println("你太厉害了,一次就猜中了"); + break; + }else if(ans>1 && ans<=6 && a==num) { + System.out.println("猜对了!"); + System.out.println("你一共猜了"+ans+"次"); + System.out.println("你很聪明"); + break; + }else{ + System.out.println("猜对了!"); + System.out.println("你一共猜了"+ans+"次"); + System.out.println("笨蛋,猜了这么多次"); + break; + } + } + } +} +``` +