package introduction5; public class SwitchDemo { //switch用于固定值的判断,如星期、人的性别 //if用于判断区间、范围,能够用switch进行判断的,if都能判断,反之则不然 //案列:返回月份天数 static int numOfDay(int year,int month) { int numDay = 0; switch (month) { case 1: numDay = 31; //break的作用:如果满足当前条件,就返回numDey的值,跳出switch循环语句,其它的选项都不执行 break; case 2: //因为闰年的2月是29天,所以此处需要加if进行判断 //闰年: //能被4整除且不能被100整除或能被400整除,则判断为闰年,输出天数为29天 if(year%4==0&&year%100!=0||year%400==0) { numDay = 29; } //否则为平年,天数输出为28天 else { numDay = 28; } break; case 3: numDay = 31; break; case 4: numDay = 30; break; case 5: numDay = 31; break; case 6: numDay = 30; break; case 7: numDay = 31; break; case 8: numDay = 31; break; case 9: numDay = 30; break; case 10: numDay = 31; break; case 11: numDay = 30; break; case 12: numDay = 31; break; /*default:相对于if语句中的else,如果输入的数字不在1~12之间(以上所有条件都不满足), * 那么就执行default,输出“无效的月份”。 */ default: { System.out.println("无效的月份"); break; } } return numDay; } public static void main(String[] args) { int numDey = numOfDay(78, 30); //如果给定的月份不在1~12之前,那么打印的结果为“0” System.out.println("给定年和月里面的天数是:"+numDey); } }
自己练习:
package introduction; import java.time.temporal.WeekFields; public class Demo { public static String OfWeek(int number) { /* * 自己练习时错误: * 1、忘记在每个case后面加break关键字。 * 2、不知道怎么在主方法中调用写完的程序, * 自己调用的方式是先实例化再调用,实际有更简单的方式去验证调用 * 3、default部分需要用大括号括起来 */ String week = ""; switch(number) { case 1: week = "星期一:Monday"; break; case 2: week = "星期二:Tuesday"; break; case 3: week = "星期三:Wednesday"; break; case 4: week = "星期四:Thursday"; break; case 5: week = "星期五:Friday"; break; case 6: week = "星期六:Saturday"; break; case 7: week = "星期日:Sunday"; break; default: { System.out.print("请输入1~7之间的有效数字,"); break; } } return week; } public static void main(String[] args) { String week = OfWeek(9); System.out.println("给定的数字代表:"+week); } }