1.If可以用于条件范围的判断,switch可以用于等值判断
2.switch中的数据类型为:byte,short,char,int ,String(JDK7以后支持)
3.在某些特殊的情况下,break可以省略,default不是必须的
package day01;
import java.util.Scanner;
/**
* 用户输入年月,打印当前月有多少天
* @author Fmc
*
*/
public class SwitchDemo {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入年:");
int year = input.nextInt();
System.out.print("请输入月:");
int month = input.nextInt();
boolean flag ;
int day = 0;
if(year % 4 == 0 && year % 100 != 0|| year % 400 == 0) {
flag = true;
}else {
flag = false;
}
switch(month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println(month + "月是31天!");
break;
case 4:
case 6:
case 9:
case 11:
System.out.println(month + "月是30天!");
break;
case 2:
System.out.println(month + "月是" + (flag ? "29" : "28") + "天");
break;
default:
System.out.println("输入的月份不符合要求(1—12)!!");
break;
}
}
}
控制台结果
请输入年:2008
请输入月:2
2月是29天
---------------------
请输入年:2010
请输入月:7
7月是31天!
---------------------
请输入年:2011
请输入月:9
9月是30天!
--------------------
请输入年:2018
请输入月:2
2月是28天
作业:
package day01;
import java.util.Scanner;
/**
* 输入成绩等级,打印分数区间
* 等级划分如下
* A 90-100
* B 80-89
* C 70-79
* D 60-69
* E 45-49
* else 0-44
* @author Fmc
*
*/
public class SwitchDemo2 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入你的成绩等级:");
String grade = input.next();
switch(grade) {
case "A":
System.out.println("你的成绩等级为:90-100");
break;
case "B":
System.out.println("你的成绩等级为:80-89");
break;
case "C":
System.out.println("你的成绩等级为:70-79");
break;
case "D":
System.out.println("你的成绩等级为:60-69");
break;
case "E":
System.out.println("你的成绩等级为:45-59");
break;
default:
System.out.println("你的成绩等级为:0-44");
break;
}
}
}
控制台输出结果
请输入你的成绩等级:A
你的成绩等级为:90-100