目录
1.分支结构
分支结构的执行是依据一定的条件(逻辑判断或关系比较等条件)来选择执行路径
分支结构有if选择分支和switch条件分支, 基本语法如下:
// 分支结构
/* 选择结构if 语句
第一种语法:
if(执行的条件){
语句块。
}
如果执行条件是真的,就执行语句块。否则就跳过
第二种语法:
if(执行的条件){
语句块1
} else {
语句块2
}
如果执行条件是真的,就执行语句块1。否则执行语句块2
第三种:多条件分支结构 if---else if....else if...else
if(执行的条件1){
语句块1
} else if(执行的条件2) {
语句块2
} else if(执行的条件3){
语句块3
}.........
else {
语句块n;
}
*/
// 条件分支语句
// break匹配 对应case成功后, 跳出switch语句
// default 当前边所有的case都没有匹配时,走default内容 如果将default放在最前边,应加break, 通常放在末尾
// 选项输出内容相同时, 可合并
/* switch(已知条件){
case 选项1 :
输出1
break
case 选项2 :
输出2
break
case 选项3:
case 选项4:
输出3
...
default:
输出4
}
*/
break 和 default比较:
- break匹配 对应case成功后, 跳出switch语句
- default 当前边所有的case都没有匹配时,走default内容 如果将default放在最前边,应加break, 通常放在末尾
2.例题
(1)判断闰年(if)
// 判断闰年,满足条件之一: (1)能被4整除同时不能被100整除; (2)能被400整除
var year = window.prompt('请输入一个年份: ') //当未输入内容,直接点击确定,year的值为''空字符串, 参与减法运算时,发生隐式转换为0, 故直接进入下边的语句中继续运行
// 判断是否输入内容
if (year === null) { //点取消时, 返回null
alert('您还未输入年份呢!!!')
} else {
// 将prompt接收的字符串转换为数字
var yearNum = year - 0
// 判断是否为数字型
if (typeof yearNum === 'number') {
if (
(yearNum % 4 === 0 && yearNum % 100 != 0) ||
yearNum % 400 === 0
) {
alert('您输入的年份' + year + '是闰年!')
} else {
alert('您输入的年份' + year + '是平年!')
}
} else {
alert('您输入的不是年份!!!')
}
}
(2)水仙花数(if)
//判断一个给定的三位数是否为水仙花数。三位水仙花数,即其个位、十位、百位数字的立方和等于该数本身
/* 算法:
1) 判断是否输入内容
2) 判断是否输入的是数字
3) 判断输入的是否为三位数
4) 分别取出个,十,百位
5) 计算出立方和
6) 立方和等于本身,输出yes, 否则输出no
*/
var num = window.prompt('请输入一个三位数: ')
// 1) 判断是否输入内容
if (num === '') {
alert('您输入为空, 请重新输入!')
} else {
var newNum = num - 0
if(typeof newNum === 'number'){
if(newNum >= 100 && newNum <= 999){
// 个位
var oNum = newNum % 10
// 十位
var tNum = parseInt(( newNum / 10 ) % 10)
// 百位
var hNum = parseInt(newNum / 100)
var sum = oNum*oNum*oNum + tNum*tNum*tNum + hNum*hNum*hNum
if( sum === newNum){
alert('您输入的是水仙花数!!!')
}else{
alert('您输入的不是水仙花数!!!!!!!')
}
}else{
alert('您输入的数字超出范围啦~~~')
}
}
}
(3)判断是一年中的第几天(switch)
// 判断这一天是该年中的第几天
// 算法: 1月day日,则为day日, 2月day日,则用1月的总天数31+day, 一次类推 (其中3月day日需判断2月是否为闰月) 匹配到继续执行,故无需break
var year = window.prompt('请输入年份: ') - 0
var month = window.prompt('请输入月份: ') - 0
var day = window.prompt('请输入日:') - 0
var sum = day
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
case 1:
alert(month + '月' + day + '日是' + year + '年中的第' + sum + '天')
break
}
PreviousNotes: