JavaScript的switch语句与经典案例年月日

switch语法

switch(n)
{
    case 1:
        执行代码块 1
        break;
    case 2:
        执行代码块 2
        break;
    default:
        与 case 1 和 case 2 不同时执行的代码
}

工作原理

首先设置表达式 n(通常是一个变量)。随后表达式的值会与结构中的每个 case 的值做比较。如果存在匹配,则与该 case 关联的代码块会被执行。请使用 break 来阻止代码自动地向下一个 case 运行。

switch 中 case的判断是===的判断,即数据类型和值的双重判断。
case值还可以表示一个范围,类型switch的判断条件的类型要和case值相同
另外switch的判断条件可以是String 、Number、Boolean、char、枚举、null、undefined

经典小案例年月日

// 要求用户通过 弹窗 输入 年,月,日,判断该日是这一年的第多少天?
var year = parseInt(prompt('请输入年份:'));
var month = parseInt(prompt('请输入月份:'));
//判断月份是否超出正常月份
if(month > 0 && month < 13){
	var day = parseInt(prompt('请输入日:'));
	//判断每月天数是否超出正常天数
	switch (month) {
		case 1 :
		case 3 :
		case 5 :
		case 7 :
		case 8 :
		case 10 :
		case 12 :
			if(day > 0 && day <= 31){
				function_name (year,month,day);
			}else {
				console.log('对不起,天数不对');
			}
			break;
		case 4 :
		case 6 :
		case 9 :
		case 11 :
			if(day > 0 && day <= 30){
				function_name (year,month,day);
			}else {
				console.log('对不起,天数不对');
			}
			break;
		case 2 :
			if((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)){
				if(day > 0 && day <= 29){
					function_name (year,month,day);
				}else {
					console.log('对不起,天数不对');
				}
			}else {
				if(day > 0 && day <= 28){
					function_name (year,month,day);
				}else {
					console.log('对不起,天数不对');
				}
			}
			break;
	}
	
	function function_name (year,month,day) {
		// console.time('aaa');
		var sum = 0;
		//累加求和
		switch (month) {
			case 12 : sum += 30;
			case 11 : sum += 31;
			case 10 : sum += 30;
			case 9 : sum += 31;
			case 8 : sum += 31;
			case 7 : sum += 30;
			case 6 : sum += 31;
			case 5 : sum += 30;
			case 4 : sum += 31;
			case 3 : 
				if((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)){
					sum += 29;
				}else {
					sum += 28;
				}
			case 2 : sum += 31;
				
			default:
				sum += day;
			}
		document.write(year+'年'+month+'月'+day+'日,是'+year+'年的第'+sum+'天'); 
		// console.timeEnd('aaa');
	}
	
}else {
	console.log('对不起,您输入是月份不对无法计算')
}
发布了43 篇原创文章 · 获赞 3 · 访问量 1148

猜你喜欢

转载自blog.csdn.net/qq_45007419/article/details/103397898