主题
第4天:条件语句
目录
条件语句
条件语句用于根据不同条件做出决策。 默认情况下,JavaScript 脚本中的语句从上到下按顺序执行。如果处理逻辑需要,可以通过两种方式改变顺序执行流程:
- 条件执行:如果某个表达式为真,将执行一个或多个语句块
- 重复执行:只要某个表达式为真,就会重复执行一个或多个语句块。在本节中,我们将介绍 if、else、else if 语句。我们在前面章节中学到的比较和逻辑运算符在这里会很有用。
条件可以通过以下方式实现:
- if
- if else
- if else if else
- switch
- 三元运算符
If 语句
在 JavaScript 和其他编程语言中,关键字 if 用于检查条件是否为真并执行代码块。要创建 if 条件,我们需要 if 关键字、括号内的条件和花括号内的代码块。
js
// 语法
if (condition) {
// 当条件为真时执行这部分代码
}
示例:
js
let num = 3
if (num > 0) {
console.log(`${num} 是正数`)
}
// 3 是正数
如你在上面的条件示例中看到的,3 大于 0,所以它是正数。条件为真,代码块被执行。但是,如果条件为假,我们不会看到任何结果。
js
let isRaining = true
if (isRaining) {
console.log('记得带雨衣。')
}
第二个条件也是如此,如果 isRaining 为 false,if 块将不会被执行,我们看不到任何输出。为了看到假条件的结果,我们应该有另一个块,即 else。
If Else 语句
如果条件为真,将执行第一个块,如果不是,将执行 else 条件。
js
// 语法
if (condition) {
// 当条件为真时执行这部分代码
} else {
// 当条件为假时执行这部分代码
}
js
let num = 3
if (num > 0) {
console.log(`${num} 是正数`)
} else {
console.log(`${num} 是负数`)
}
// 3 是正数
num = -3
if (num > 0) {
console.log(`${num} 是正数`)
} else {
console.log(`${num} 是负数`)
}
// -3 是负数
js
let isRaining = true
if (isRaining) {
console.log('你需要雨衣。')
} else {
console.log('不需要雨衣。')
}
// 你需要雨衣。
isRaining = false
if (isRaining) {
console.log('你需要雨衣。')
} else {
console.log('不需要雨衣。')
}
// 不需要雨衣。
最后一个条件为假,因此执行了 else 块。如果我们有两个以上的条件怎么办?在这种情况下,我们会使用 else if 条件。
If Else if Else 语句
在我们的日常生活中,我们每天都在做决策。我们做决策不是通过检查一个或两个条件,而是基于多个条件做决策。与我们的日常生活类似,编程也充满了条件。当我们有多个条件时,我们使用 else if。
js
// 语法
if (condition) {
// 代码
} else if (condition) {
// 代码
} else {
// 代码
}
示例:
js
let a = 0
if (a > 0) {
console.log(`${a} 是正数`)
} else if (a < 0) {
console.log(`${a} 是负数`)
} else if (a == 0) {
console.log(`${a} 是零`)
} else {
console.log(`${a} 不是数字`)
}
js
// if else if else
let weather = 'sunny'
if (weather === 'rainy') {
console.log('你需要雨衣。')
} else if (weather === 'cloudy') {
console.log('可能会冷,你需要夹克。')
} else if (weather === 'sunny') {
console.log('自由出行。')
} else {
console.log('不需要雨衣。')
}
Switch 语句
Switch 是 if else if else else 的替代方案。 switch 语句以 switch 关键字开始,后跟括号和代码块。在代码块内我们将有不同的 case。如果 switch 语句括号中的值与 case 值匹配,case 块就会运行。break 语句用于终止执行,这样在条件满足后代码执行不会继续向下进行。如果所有 case 都不满足条件,default 块就会运行。
js
switch(caseValue){
case 1:
// 代码
break
case 2:
// 代码
break
case 3:
// 代码
break
default:
// 代码
}
js
let weather = 'cloudy'
switch (weather) {
case 'rainy':
console.log('你需要雨衣。')
break
case 'cloudy':
console.log('可能会冷,你需要夹克。')
break
case 'sunny':
console.log('自由出行。')
break
default:
console.log('不需要雨衣。')
}
// Switch 更多示例
let dayUserInput = prompt('今天是星期几?')
let day = dayUserInput.toLowerCase()
switch (day) {
case 'monday':
console.log('今天是星期一')
break
case 'tuesday':
console.log('今天是星期二')
break
case 'wednesday':
console.log('今天是星期三')
break
case 'thursday':
console.log('今天是星期四')
break
case 'friday':
console.log('今天是星期五')
break
case 'saturday':
console.log('今天是星期六')
break
case 'sunday':
console.log('今天是星期日')
break
default:
console.log('这不是工作日。')
}
在 case 中使用条件的示例:
js
let num = prompt('输入数字');
switch (true) {
case num > 0:
console.log('数字是正数');
break;
case num == 0:
console.log('数字是零');
break;
case num < 0:
console.log('数字是负数');
break;
default:
console.log('输入的值不是数字');
}
三元运算符
编写条件语句的另一种方法是使用三元运算符。我们在其他章节中已经介绍过这个,但我们也应该在这里提到它。
js
let isRaining = true
isRaining
? console.log('你需要雨衣。')
: console.log('不需要雨衣。')
练习
练习:第1级
使用 prompt("输入你的年龄:") 获取用户输入。如果用户 18 岁或以上,给出反馈:'你已经足够大可以开车',但如果不到 18 岁,给出另一个反馈,说明他需要等待多少年才能满 18 岁。
sh输入你的年龄: 30 你已经足够大可以开车。 输入你的年龄: 15 你还需要等 3 年才能开车。
使用 if … else 比较 myAge 和 yourAge 的值。根据比较结果,将结果记录到控制台,说明谁更大(我还是你)。使用 prompt("输入你的年龄:") 获取年龄作为输入。
sh输入你的年龄: 30 你比我大 5 岁。
如果 a 大于 b,返回 'a 大于 b',否则返回 'a 小于 b'。尝试用两种方式实现
- 使用 if else
- 三元运算符
jslet a = 4 let b = 3
sh4 大于 3
偶数能被 2 整除,余数为零。你如何使用 JavaScript 检查一个数字是否为偶数?
sh输入一个数字: 2 2 是偶数 输入一个数字: 9 9 是奇数。
练习:第2级
编写一个可以根据学生分数给出等级的代码:
- 80-100, A
- 70-89, B
- 60-69, C
- 50-59, D
- 0-49, F
检查季节是秋季、冬季、春季还是夏季。 如果用户输入是:
- 九月、十月或十一月,季节是秋季。
- 十二月、一月或二月,季节是冬季。
- 三月、四月或五月,季节是春季
- 六月、七月或八月,季节是夏季
检查一天是周末还是工作日。你的脚本将以天作为输入。
sh
今天是星期几? Saturday
Saturday 是周末。
今天是星期几? saturDaY
Saturday 是周末。
今天是星期几? Friday
Friday 是工作日。
今天是星期几? FrIDAy
Friday 是工作日。
练习:第3级
- 编写一个程序,告诉一个月有多少天。
sh
输入月份: January
January 有 31 天。
输入月份: JANUARY
January 有 31 天
输入月份: February
February 有 28 天。
输入月份: FEbruary
February 有 28 天。
- 编写一个程序,告诉一个月有多少天,现在考虑闰年。