diff --git "a/39 \351\203\255\346\202\246\350\277\216/2022 11.17\345\255\246\344\271\240Java\347\254\254\344\270\200\350\257\276.md" "b/39 \351\203\255\346\202\246\350\277\216/20221117 \345\255\246\344\271\240Java\347\254\254\344\270\200\350\257\276.md" similarity index 100% rename from "39 \351\203\255\346\202\246\350\277\216/2022 11.17\345\255\246\344\271\240Java\347\254\254\344\270\200\350\257\276.md" rename to "39 \351\203\255\346\202\246\350\277\216/20221117 \345\255\246\344\271\240Java\347\254\254\344\270\200\350\257\276.md" diff --git "a/39 \351\203\255\346\202\246\350\277\216/20221128java\345\237\272\347\241\200\350\257\255\346\263\225.md" "b/39 \351\203\255\346\202\246\350\277\216/20221128 java\345\237\272\347\241\200\350\257\255\346\263\225.md" similarity index 100% rename from "39 \351\203\255\346\202\246\350\277\216/20221128java\345\237\272\347\241\200\350\257\255\346\263\225.md" rename to "39 \351\203\255\346\202\246\350\277\216/20221128 java\345\237\272\347\241\200\350\257\255\346\263\225.md" diff --git "a/39 \351\203\255\346\202\246\350\277\216/20221202 \345\210\206\346\224\257\347\273\223\346\236\204.md" "b/39 \351\203\255\346\202\246\350\277\216/20221202 \345\210\206\346\224\257\347\273\223\346\236\204.md" new file mode 100644 index 0000000000000000000000000000000000000000..e825ec352a785cda5fb173514dca7e6362ce2435 --- /dev/null +++ "b/39 \351\203\255\346\202\246\350\277\216/20221202 \345\210\206\346\224\257\347\273\223\346\236\204.md" @@ -0,0 +1,89 @@ +### 1.字符串比较 + +字符串不能比大小,判断是否相等要用equals。比如要判断a是否等于b : a. equals(b) + +### 2.字符 + +有关扫描器中,字符的输入char a=sc.next().charAt(0); + +从字符串中,截取第一个字符,因为计算机常第一位是计0 + +### 4.switch + +swith支持字符串的判断,但是不支持布尔型变量(if要有equals才可以) + +格式: + +```java +switch (表达式) { + +case 1: + +语句体1; + +break; + +case 2: + +语句体2; + +break; + +... + +default: + +语句体n+1; + +break; + +} +``` + +switch有穿透所以要break结尾 + +default是保底用的 + +!!!Switch能做的if也能做,但if能做的switch不一定能做;if可以判断一个范围(区间的值),而switch只能判断特定一个值!!! + +# 作业 +```java +import java.util.Scanner; + +public class eee { + public static void main(String[] args){ + // 某事不同车牌的出租车3千米的起步价和计费分别为:夏利3元,3千米以外,2.1元每千米; +// 富康4元,3千米以外,2.4元每千米;桑塔纳5元,3千米以外,2.7元每千米。 +// 编程实现从键盘输入乘车的车型及行车千米数,输出应付车费。 + System.out.println("输入车牌和公里数:"); + Scanner sc=new Scanner(System.in); + String n = sc.next(); + double m = sc.nextDouble(); + System.out.println(payFor(n,m)); + } + public static double payFor(String name,double m){ + double money=0; + if(name.equals("夏利")){ + if(m<3){ + money=3; + }else{ + money=3+(m-3)*2.1; + } + }else if(name.equals("富康")){ + if(m<3){ + money=4; + }else{ + money=4+(m-3)*2.4; + } + }else if(name.equals("桑塔纳")){ + if(m<3){ + money=5; + }else{ + money=5+(m-3)*2.7; + } + } + return money; + } +} +``` + diff --git "a/39 \351\203\255\346\202\246\350\277\216/20221203 for\345\276\252\347\216\257.md" "b/39 \351\203\255\346\202\246\350\277\216/20221203 for\345\276\252\347\216\257.md" new file mode 100644 index 0000000000000000000000000000000000000000..e4bcd1eeb959b29113a241495b58b1fdb72f0daa --- /dev/null +++ "b/39 \351\203\255\346\202\246\350\277\216/20221203 for\345\276\252\347\216\257.md" @@ -0,0 +1,86 @@ +# for循环 + +### 循环语句-for循环 + +- 循环: + +循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环 + +体语句,当反复 执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循 + +环,否则循环将一直执行下去,形 成死循环。 + +- for循环格式: + + ```java + for (初始化语句;条件判断语句;条件控制语句) { + 循环体语句; + } + ``` + +- 格式解释: + + > 初始化语句: 用于表示循环开启时的起始状态,简单说就是循环开始的时候什么样 + > + > 条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去 + > + > 循环体语句: 用于表示循环反复执行的内容,简单说就是循环反复执行的事情 + > + > 条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去 + +- 执行流程: + +①执行初始化语句 + +②执行条件判断语句,看其结果是true还是false + +​ `如果是false,循环结束` + +​ `如果是true,继续执行` + +③执行循环体语句 + +④执行条件控制语句 + +⑤回到②继续 + +# 作业 + +```java +import java.util.Scanner; + +public class D1 { + static Scanner sc=new Scanner(System.in); +// 让用户输入一个数字,根据这个数字,循环输出"我爱学习,我爱java",比如,用户输入数字 9 就在控制台输出9行"我爱学习,我爱java" + public static void main(String[] args) { + System.out.println("请输入一个数字"); + int a=sc.nextInt(); + for(int i=1;i<=a;i++){ + System.out.println("我爱学习,我爱java"); + } + } + +} +``` + +```java +import java.util.Scanner; + +public class D1 { + public static void main(String[] args) { +// 用户分别输入数 a,数b,让程序实现从a 开始循环到b.输出"有生之年,能看到中国队出线吗?" + Scanner sc = new Scanner(System.in); + System.out.println("请输入两个数字"); + int a = sc.nextInt(); + int b = sc.nextInt(); + if (a>b){ + System.out.println("输入错误,请输入第一个小于第二个的数"); + } + for (int i = a; i <= b; i++) { + System.out.println("有生之年,能看到中国队出线吗"); + } + + } +} +``` + diff --git "a/39 \351\203\255\346\202\246\350\277\216/20221205 while&do while\345\276\252\347\216\257.md" "b/39 \351\203\255\346\202\246\350\277\216/20221205 while&do while\345\276\252\347\216\257.md" new file mode 100644 index 0000000000000000000000000000000000000000..f86d533eadc84be5be327ef6a1ca8d1f6fa16f8e --- /dev/null +++ "b/39 \351\203\255\346\202\246\350\277\216/20221205 while&do while\345\276\252\347\216\257.md" @@ -0,0 +1,139 @@ +#### 循环语句-while循环 + +##### while循环完整格式: + +```java +初始化语句; +while (条件判断语句) { +循环体语句; +条件控制语句; +} +``` + +#### while循环执行流程: + + ①执行初始化语句 + + ②执行条件判断语句,看其结果是true还是false + + 如果是false,循环结束 + + 如果是true,继续执行 + +③执行循环体语句 + + ④执行条件控制语句 + + ⑤回到②继续 + +### 循环语句-dowhile循环 + +#### 完整格式 + +```java +初始化语句; +do { +循环体语句; +条件控制语句; +}while(条件判断语句); +``` + +#### 执行流程: + + ① 执行初始化语句 + + ② 执行循环体语句 + + ③ 执行条件控制语句 + + ④ 执行条件判断语句,看其结果是true还是false + +如果是false,循环结束 如果是true,继续执行 + + ⑤ 回到②继续 + +### 三种循环的区别 + +##### 三种循环的区别 + + 1.for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行) + +2. do...while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后 判断) + +##### for循环和while的区别 + +1. 条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能 再次被访问到了 + +2. 条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束 后,该变量还可以继续使用 + + ##### 死循环(无限循环)的三种格式 + + 1. for(;;){} + 2. while(true){} + 3. do {} while(true); + +# 作业 + +1. + +```java +public class pp { + public static void main(String[] args) { +// 求555555的约数中最大的三位数 + + + int i=555555; + int j; + for(j=999;j>=100;j--) + if(i%j==0) + { + System.out.println("最大的三位数是:"+j); + break; + } + } + } + +``` + +2. + +```java +import java.util.Scanner; + +public class op { + public static void main(String[] args) { +// 猜数字游戏,由系统随机生成一个随机数(数字(0~99)之间, +// 生成方法为int num=new Random().nextInt(100))。 +// 用户去猜测,如果太大,系统提示“你猜的数字太大了!再猜哦”, +// 如果太小,系统提示“你猜的数字太小了!再猜哦”, +// 猜中则提示“恭喜你,猜对了!" +// 猜字过程中需要统计用户猜测次数, +// 如果用户一次性猜对,提示”你太厉害了,一次猜对!“, +// 6次以上才猜中的话,提示”笨笨,你猜这么多次!“ + int x,a,i=0; + Scanner scanner=new Scanner(System.in); + x=(int)(Math.random()*100); + System.out.println("请输入你要猜的值"); + do { + a=scanner.nextInt(); + i=i+1; + if(i==1 && x==a){ + System.out.println("你真腻害!好棒棒!扭扭扭!"); + break; + }else if(i>=6 && x==a){ + System.out.println("你笨笨跟职业选手一样"); + break; + }else if(a==x){ + System.out.println("恭喜你猜对了"); + break; + }else if(a大量的用于存储数据类型的变量 + +要存储的数据通常都是同类型数据,例如:考试成绩 + +int[] scores = {100,100,100,100,100,100,100…}; + +#### 2.数组是什么 + +数组(array):是一种用于存储多个相同数据类型的存储模型(可以理解为容器) + +#### 3.数组定义格式 + +##### 格式1: + +数据类型[ ] 变量名: + +​ 范例 int[ ] arr ; 跟 int arr相比; + +​ int[ ] arr 定义一个int 类型的数组,数组名是arr + +​ int arr 定义了一个变量 变量名是arr + +##### 格式2: + +数据类型 变量名[ ]: + +​ int arr [ ]; + +​ 定义了一个int类型的变量, 变量名是arr数组 + +格式1 int [ ] arr; + +#### 3.数组初始化概述 + + Java 数组必须先初始化 才能使用 + +所谓初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值注意: + +数组中的每一个数据,我们称之为数组中的元素 + +##### 3.1静态初始化 + +静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度格式: + +数据类型[] 变量名 = new 数据类型[]{数据1,数据2,数据3,…}; + +范例:int[] arr = new int[]{1,2,3}; + + 简化格式: 数据类型[ ] 变量名 = {数据1,数据2,} + +#### 作业 + +定义一个可以存储5个元素的int数组,数据来自于键盘录入,最后遍历数组,把元素输出在控制台 + +```java +package 十二月七日; + +import java.util.Scanner; + +public class D1 { + public static void main(String[] args) { + int[] n=new int[5]; + for(int i=0;i<5;i++){ + Scanner num=new Scanner(System.in); + System.out.println("输入元素"+i); + n[i]=num.nextInt(); + } + System.out.println("你输入的五个元素为:"); + for (int j=0;j<5;j++){ + System.out.print(n[j]+" "); + } + } +} +``` +