程序员scholar 程序员scholar
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
npm

(进入注册为作者充电)

  • HTML

  • CSS

  • JavaScript

    • 简介和用法
    • 变量和数据类型
    • 运算符
    • 数据类型转换
    • 选择结构
      • 1. 简介
      • 2. 基本用法
        • 2.1 if 语句
        • 2.2 switch 语句
      • 3. if 和 switch 的区别
      • 4. 示例代码
    • 循环结构
    • 数组
    • 数组遍历
    • 函数
    • Debug调试
    • DOM
    • 事件处理
    • BOM(浏览器对象模型)
    • 自定义对象
    • 原型 (Prototype)
    • 内置对象
    • 客户端存储
    • 模块加载方案
  • 前端三剑客
  • JavaScript
scholar
2024-07-19
目录

选择结构

# 选择结构

# 1. 简介

程序结构有三种:顺序结构、选择结构、循环结构。选择结构(分支结构)根据条件进行判断,从而执行不同的操作,实际上就是条件判断。选择结构的类型主要包括:if 语句和 switch 语句。

# 2. 基本用法

# 2.1 if 语句

if 语句用于执行条件判断。根据条件的真假,决定是否执行相应的代码块。if 语句可以分为单分支结构、二分支结构、多分支结构和嵌套 if 结构。

语法:

if (条件1) {
    // 代码块1
} else if (条件2) {
    // 代码块2
} else if (条件3) {
    // 代码块3
} else {
    // 代码块n
}
1
2
3
4
5
6
7
8
9

示例:

var score = 85;

if (score >= 90) {
    console.log("优秀");
} else if (score >= 80) {
    console.log("良好");
} else if (score >= 70) {
    console.log("中等");
} else if (score >= 60) {
    console.log("及格");
} else {
    console.log("不及格");
}
1
2
3
4
5
6
7
8
9
10
11
12
13

# 2.2 switch 语句

switch 语句用于进行等值判断。根据表达式的值,执行对应的代码块。如果所有的 case 都不匹配,则执行 default 语句。

语法:

switch (表达式) {  // 表达式为要判断的内容
    case 常量1:
        // 代码块1
        break;
    case 常量2:
        // 代码块2
        break;
    // ...
    default:  // 当所有常量都无法匹配时会执行 default 语句
        // 代码块n
}
1
2
3
4
5
6
7
8
9
10
11

示例:

var fruit = "apple";

switch (fruit) {
    case "banana":
        console.log("这是香蕉");
        break;
    case "apple":
        console.log("这是苹果");
        break;
    case "orange":
        console.log("这是橙子");
        break;
    default:
        console.log("未知水果");
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 3. if 和 switch 的区别

  • switch 结构:

    • 只能进行等值判断。
    • 适用于多种情况都需要进行等值比较时。
    • 可读性强,结构清晰,适合处理多重条件。
  • if 结构:

    • 没有限制,适合任意条件判断。
    • 适合处理某个连续区间的判断。
    • 灵活性强,可以处理更复杂的逻辑。

# 4. 示例代码

以下是综合示例,演示了 if 和 switch 语句的使用:

// 使用 if 语句判断分数等级
var score = 85;

if (score >= 90) {
    console.log("优秀");
} else if (score >= 80) {
    console.log("良好");
} else if (score >= 70) {
    console.log("中等");
} else if (score >= 60) {
    console.log("及格");
} else {
    console.log("不及格");
}

// 使用 switch 语句判断水果类型
var fruit = "apple";

switch (fruit) {
    case "banana":
        console.log("这是香蕉");
        break;
    case "apple":
        console.log("这是苹果");
        break;
    case "orange":
        console.log("这是橙子");
        break;
    default:
        console.log("未知水果");
}

// 复杂的条件判断使用 if 语句
var age = 25;
var isStudent = false;

if (age < 18) {
    console.log("未成年");
} else if (age >= 18 && age <= 25) {
    if (isStudent) {
        console.log("大学生");
    } else {
        console.log("年轻人");
    }
} else {
    console.log("成年人");
}

// 等值判断使用 switch 语句
var day = 3;

switch (day) {
    case 1:
        console.log("星期一");
        break;
    case 2:
        console.log("星期二");
        break;
    case 3:
        console.log("星期三");
        break;
    case 4:
        console.log("星期四");
        break;
    case 5:
        console.log("星期五");
        break;
    case 6:
        console.log("星期六");
        break;
    case 7:
        console.log("星期天");
        break;
    default:
        console.log("未知日期");
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
编辑此页 (opens new window)
上次更新: 2025/01/25, 22:32:05
数据类型转换
循环结构

← 数据类型转换 循环结构→

Theme by Vdoing | Copyright © 2019-2025 程序员scholar
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式