diff --git "a/22 \350\202\226\351\222\237\345\207\257\351\237\251/20221126.md" "b/22 \350\202\226\351\222\237\345\207\257\351\237\251/20221126 \345\217\230\351\207\217.md" similarity index 100% rename from "22 \350\202\226\351\222\237\345\207\257\351\237\251/20221126.md" rename to "22 \350\202\226\351\222\237\345\207\257\351\237\251/20221126 \345\217\230\351\207\217.md" diff --git "a/22 \350\202\226\351\222\237\345\207\257\351\237\251/20221202 \345\210\206\346\224\257\347\273\223\346\236\204\344\271\213switch\350\257\255\345\217\245.md" "b/22 \350\202\226\351\222\237\345\207\257\351\237\251/20221202 \345\210\206\346\224\257\347\273\223\346\236\204\344\271\213switch\350\257\255\345\217\245.md" new file mode 100644 index 0000000000000000000000000000000000000000..120e54c46c3c51365a63932546af96414d4bbc2d --- /dev/null +++ "b/22 \350\202\226\351\222\237\345\207\257\351\237\251/20221202 \345\210\206\346\224\257\347\273\223\346\236\204\344\271\213switch\350\257\255\345\217\245.md" @@ -0,0 +1,158 @@ +### 笔记 + +#### case + +格式: + +switch (根据变量名的值来做判断) + +case 表达1: + +​ 表达式2 + +break + +default :(默认;表示前面几个值都不满住,就默认输出这个值) + +​ 表达式 + +​ break;(可写可不写,最好是写) + +#### 操作步骤 + +1、创建一个扫描器Scanner和变量来接收用户的指令 + +2、用switch来判断结果 + +#### 小结:if和switch的区别 + +1、switch能做的,if都可以做,但if能做的,switch不一定能做 + +2、if可以判断一个范围(区间的值),而switch只能判断特定的值 + +3、如果要判断的值比较清晰精准,且值不多,就可以使用switch去判断,如果是要判断一个区间的值,那就不考虑switch,就用if去判断 + +4、switch支持字符串的判断,不支持boolear类型的判断 + +#### 课堂补充知识点 + +1、if语句的嵌套 + +2、字符串(String) + +引用类型 + +String一但赋值就不可以改变赋予的值 + +字符串的比较:字符串不能直接比大小,判断是否相等,要用equals,比如,要判断a是否等于b(a.equals(b)) + +3、字符(char) + +char类型的判断格式:char 表达式 = sc.next().charAt (0); + +### 作业 + +##### 题目1:某市不同车牌的出租车3千米的起步价和计费分别为:夏利3元,3千米以外,2.1元/千米;富康4元,3千米以外,2.4元/千米;桑塔纳5元,3千米以外,2.7元/千米;编程实现从键盘输入乘车的车型以及行车的千米数,来输出应付车费。 + +```java +import java.util.Scanner; + +public class d1 { + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + System.out.println("请问你要乘坐哪辆出租车?"); + String cz = sc.next(); + System.out.println("你去的地方距离多少"); + double jl = sc.nextDouble(); + switch (cz){ + case "夏利": + if (jl>3){ + System.out.println((jl*2.1)+3); + }else { + System.out.println((jl*3)); + } + break; + case "富康": + if (jl>3){ + System.out.println((jl*2.4)+4); + }else{ + System.out.println((jl*4)); + } + break; + case "桑塔纳": + if (jl>3){ + System.out.println((jl*2.7)+5); + }else{ + System.out.println((jl*5)); + } + break; + default: + System.out.println("输入错误,请重新输入!"); + break; + } + } +} +``` + +##### 题目2:使用switch和if语句算出今天是今年的第几天(提示:3月3日为例,应该先把前两个月的天数加起来,然后在加上 3天即为本年的第几天:需要考虑闰年的情况,如果输入的年份是闰年且输入的月份大于或等于3,需要多加1天) + +```java +import java.util.Scanner; + +public class d3 { + public static void main(String[] args) { + + Scanner sc = new Scanner(System.in); + System.out.println("请输入年月日"); + int year = sc.nextInt(); + int month = sc.nextInt(); + int day = sc.nextInt(); + int sum = 0; + switch(month - 1){ + case 11: + sum += 30; + break; + case 10: + sum += 31; + break; + case 9: + sum += 30; + break; + case 8: + sum += 31; + break; + case 7: + sum += 31; + break; + case 6: + sum += 30; + break; + case 5: + sum += 31; + break; + case 4: + sum += 30; + break; + case 3: + sum += 31; + break; + case 2: + sum += 28; + break; + case 1: + sum += 31; + break; + case 0: + sum += day; + break; + } + if(month > 2){ + if(year % 400 == 0 || year % 4 == 0 && year % 100 !=0){ + sum++; + } + System.out.println("第" + sum+"天"); + + } + } +} +``` \ No newline at end of file