平常很少学习到Javacript Switch的写法,虽然我觉得用if else
写感觉更简单明了?
但其实不是这样的,这两种语法在使用的时机上有差别:
1.Switch:他运作的方式是会把 expression 传到 case 的条件,并进行严格相等(===)比较 => case 得到的条件为 true 的话才会执行对应的 statement,也就是说如果有明确的判断值,用 switch 比较合适。
2.if...else:则是需符合条件式内的条件才会执行对应的陈述式,通常是判断「範围区间」时使用。
Switch case 题目:
Complete function howManydays, function accept 1 parameters:month, means the month of year, different month has different days (refer to the following table), return a number that how many days in this month(month is always greater than 0, less than or equal to 12).
我第一次自己写的时候,非常单纯的将所有月份都写出来,如下:
function howManydays(month){ var days = ""; switch (month){ case 1: days = 31; break; case 2: days = 28; break; case 3: days = 31; break; case 4: days = 30; break; case 5: days = 31; break; case 6: days = 30; break; case 7: days = 31; break; case 8: days = 31; break; case 9: days = 30; break; case 10: days = 31; break; case 11: days = 30; break; case 12: days = 31; break; } return days;}
这样写没有错,但我觉得很冗长,就去查查看看是否有更简洁的写法,如下:
function howManydays(month){ var days; switch ( month ){ case 2 : return 28 case 4: case 6: case 9: case 11: return 30 default: return 31 }}
这样的写法既能得到相同的结果,也比较乾净整洁,学到一课!
其实用 if else
也可以做到上面的题目喔!虽然我们这则重点在switch上,如下:
function howManydays(month){ if(month == 2){ return 28; }else if(month == 4 || month == 6 || month == 9 || month == 11 ){ return 30; }else{ return 31; }}howManydays(1);