多分支
多分支:多个条件,每个条件为true的时候都可以做一件事
让用户输入一个数字,判断是否是水仙花数,如果是,就输出yes,否则就输出no
var num = prompt('输入一个数字:')
// 判断num 是否是水仙花数
// 水仙花数: 百位数的3次方 + 十位数的3次方 + 个位数的3次方 = 当前这个数字
// 百位数上的数字
var bai = parseInt(num / 100)
// 十位数的数字
var shi = parseInt(num / 10)% 10
// 个位数的数字
var ge = num % 10
//判断
if ( bai * bai * bai + shi * shi * shi + ge * ge * ge == num) {
console.log('yes');
} else {
console.log('no');
}
分支结构的嵌套
var score = prompt('输入一个成绩:')
// 判断输入的是否是数字
if (isNaN(score)) {
// 如果不是数字
alert('请输入数字!')
} else {
// 是数字了
// 判断范围
if (score >= 0 && score <= 100) {
// 是分数 - 判断等级
if (score < 60) {
console.log('不及格');
} else if (score < 80) {
console.log('良');
} else if (score <= 100) {
console.log('优');
}
} else {
// 不是分数
alert('数字不是分数');
}
}
switch使用技巧
default可有可无;
break是用来结束整个switch语句的,break可有可无,视情况而定;
switch只判断了一次;
switch更严谨,因为switch在判断相等的时候,使用的是全等在判断
// 输入一个月份,根据月份输出这个月总共多少天
var month = prompt('输入一个月份:')
// 判断是否是数字
if (!isNaN(month)) {
// 是数字
// 将字符串转成数字
month = Number(month)
// 判断month的范围
if (month < 1 || month > 12) {
alert('输入的不是一个月份!')
} else {
// 是1~12的数字 - 用switch
switch (month) {
case 2:
console.log('28或29天');
break
// switch的穿透写法
case 4:
case 6:
case 9:
case 11:
console.log('30天');
break
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
console.log('31天');
break
}
}
} else {
alert('不是数字!')
}
switch的穿透写法
// 求 5 以内的 数字的阶和
var num = prompt('输入1~5的数字:')
if (!isNaN(num)) {
if (num > 0 && num <= 5) {
num = Number(num)
// 定义一个容器,存放所有的和
var sum = 0
switch (num) {
case 5:
sum = sum + 5
case 4:
sum += 4
case 3:
sum += 3
case 2:
sum += 2
case 1:
sum += 1
}
console.log(sum);
} else {
alert('范围要1~5!')
}
} else {
alert('不是一个数字')
}
用最简短的代码求3个数的最大值
var max = a > b ? a > c ? a : c : b > c ? b : c
console.log(max);