当前位置: 首页 > java >正文

第7.5节:awk语言 switch 语句

1 第7.5节:awk语言 switch 语句

本节介绍的是 gawk 特有的功能。如果 gawk 处于兼容模式,该功能不可用。

switch 语句允许对一个表达式进行求值,并根据匹配的 case(分支 )来执行相应的语句。case 语句会按照定义的顺序检查匹配情况。如果找不到合适的 case,若有 default(默认 )部分,则执行 default 部分的语句。

每个 case 包含一个单独的常量,这个常量可以是数值、字符串或正则表达式。先对 switch 表达式求值,然后依次将每个 case 的常量与求值结果进行比较。常量的类型决定了比较方式:数值或字符串按常规方式比较;正则表达式常量(常规的 /foo/ 或强类型的 @/foo/ )会针对原始表达式的字符串值进行正则表达式匹配。switch 语句的一般形式如下:

switch (expression) {
case value or regular expression:case-body
default:default-body
}

switch 语句中的控制流与 C 语言中的 switch 类似。一旦匹配到某个 case,该 case 的语句体就会执行,直到遇到 breakcontinuenextnextfileexit 语句,或者执行到 switch 语句本身的末尾。例如:

while ((c = getopt(ARGC, ARGV, "aksx")) != -1) {switch (c) {case "a":# 报告所有文件的大小all_files = TRUE;breakcase "k":BLOCK_SIZE = 1024       # 1K 块大小breakcase "s":# 仅求和sum_only = TRUEbreakcase "x":# 不跨越文件系统fts_flags = or(fts_flags, FTS_XDEV)breakcase "?":default:usage()break}
}

需要注意的是,如果匹配的 case 语句中没有任何语句能终止执行,程序会继续执行下一个 case,直到执行终止。在此示例中,case "?" 会继续执行 default case,即调用一个名为 usage() 的函数。


作者声明:本文用于记录和分享作者的学习心得,可能有部分文字或示例来自AI平台,如:豆包、DeepSeek(硅基流动)(注册链接)等,由于本人水平有限,难免存在表达错误,欢迎留言交流和指教!
Copyright © 2022~2025 All rights reserved.

http://www.xdnf.cn/news/19269.html

相关文章:

  • Kubernetes 部署与发布完全指南:从 Pod 到高级发布策略
  • Ruoyi-vue-plus-5.x第一篇Sa-Token权限认证体系深度解析:1.3 权限控制与注解使用
  • Python爬虫实战:构建Widgets 小组件数据采集和分析系统
  • c++--线程休眠/sleep
  • springboot提前注册bean
  • react组件
  • 【深度学习新浪潮】有没有什么方法可以将照片变成线描稿,比如日式漫画的那种?
  • Java高并发架构核心技术有哪些?
  • MySQL数据库迁移到KingbaseES完整指南
  • 类和反射的机制
  • Redis桌面客户端
  • Windows驱动开发与双机调试环境[驱动开发环境配置高阶]
  • 使用 Ansible 和 Azure Pipelines 增强您的 DevOps
  • Qt实战:如何打开摄像头并实现视频的实时预览
  • 2025年09月计算机二级Java选择题每日一练——第十二期
  • macOs上ffmpeg带入libx264库交叉编译
  • 【龙泽科技】汽车电气故障诊断仿真教学软件【迈腾380TSI】
  • WebGIS视角:体感温度实证,哪座“火炉”火力全开?
  • centos7中MySQL 5.7.32 到 5.7.44 升级指南:基于官方二进制包的原地替换式升级
  • xAI发布全新编码模型 grok‑code‑fast‑1!
  • Kafka 消费模型
  • Qt 窗口 - 3
  • 操作系统-虚拟内存篇
  • 机器学习中的欠拟合与过拟合
  • 2025年如何批量下载雪球帖子和文章导出pdf?
  • 每日Java并发面试系列(5):基础篇(线程池的核心原理是什么、线程池大小设置为多少更合适、线程池哪几种类型?ThreadLocal为什么会导致内存泄漏?)
  • web渗透PHP反序列化漏洞
  • 设计模式 - 静态工厂模式 + 策略模式,
  • 【一】Django框架版本介绍
  • k8s 定时任务需求模板