Skip to content

第4天:条件语句

目录

条件语句

条件语句用于根据不同条件做出决策。 默认情况下,JavaScript 脚本中的语句从上到下按顺序执行。如果处理逻辑需要,可以通过两种方式改变顺序执行流程:

  • 条件执行:如果某个表达式为真,将执行一个或多个语句块
  • 重复执行:只要某个表达式为真,就会重复执行一个或多个语句块。在本节中,我们将介绍 ifelseelse 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级

  1. 使用 prompt("输入你的年龄:") 获取用户输入。如果用户 18 岁或以上,给出反馈:'你已经足够大可以开车',但如果不到 18 岁,给出另一个反馈,说明他需要等待多少年才能满 18 岁。

    sh
    输入你的年龄: 30
    你已经足够大可以开车。
    
    输入你的年龄: 15
    你还需要等 3 年才能开车。
  2. 使用 if … else 比较 myAge 和 yourAge 的值。根据比较结果,将结果记录到控制台,说明谁更大(我还是你)。使用 prompt("输入你的年龄:") 获取年龄作为输入。

    sh
    输入你的年龄: 30
    你比我大 5 岁。
  3. 如果 a 大于 b,返回 'a 大于 b',否则返回 'a 小于 b'。尝试用两种方式实现

    • 使用 if else
    • 三元运算符
    js
      let a = 4
      let b = 3
    sh
      4 大于 3
  4. 偶数能被 2 整除,余数为零。你如何使用 JavaScript 检查一个数字是否为偶数?

    sh
    输入一个数字: 2
    2 是偶数
    
    输入一个数字: 9
    9 是奇数。

练习:第2级

  1. 编写一个可以根据学生分数给出等级的代码:

    • 80-100, A
    • 70-89, B
    • 60-69, C
    • 50-59, D
    • 0-49, F
  2. 检查季节是秋季、冬季、春季还是夏季。 如果用户输入是:

    • 九月、十月或十一月,季节是秋季。
    • 十二月、一月或二月,季节是冬季。
    • 三月、四月或五月,季节是春季
    • 六月、七月或八月,季节是夏季
  3. 检查一天是周末还是工作日。你的脚本将以天作为输入。

sh
    今天是星期几? Saturday
    Saturday 是周末。

    今天是星期几? saturDaY
    Saturday 是周末。

    今天是星期几? Friday
    Friday 是工作日。

    今天是星期几? FrIDAy
    Friday 是工作日。

练习:第3级

  1. 编写一个程序,告诉一个月有多少天。
sh
  输入月份: January
  January 31 天。

  输入月份: JANUARY
  January 31

  输入月份: February
  February 28 天。

  输入月份: FEbruary
  February 28 天。
  1. 编写一个程序,告诉一个月有多少天,现在考虑闰年。