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

【Groovy】流程控制

1 选择结构

​ Groovy 中选择结构主要包含 if -else、switch 语句,并且可以返回结果。

1.1 if-else

def score = 85
if (score >= 90) {println("优秀")
} else if (score >= 80) {println("良好")
} else if (score >= 60) {println("及格")
} else {println("不及格")
}

​ 说明:如果 {} 里只有一条语句,可以省略 {},if-else 语句可以嵌套使用,其他流程控制语句也可以嵌套使用。不同于 Kotlin,Groovy 中 if-else 语句不能作为结果判断,即下面的语句是非法的

def score = 85
def res = if (score > 60) "及格" else "不及格"

1.2 switch

1)简单案例

def grade = 'B'
switch (grade) {case 'A':println("优秀")breakcase 'B':println("良好")breakcase 'C':println("及格")breakdefault:println("不及格")break
}

​ 说明:如果 {} 里只有一条语句,可以省略 {}。不同于 Kotlin,Groovy 中 when 语句不能作为结果判断。

2)多分支合并

def grade = 'B'
switch (grade) {case 'A':case 'B':case 'C':println("及格")breakdefault:println("不及格")break
}

2 循环结构

​ Groovy 中循环结构主要包含 for、while、do-while 循环结构。另外,continue 语句可以控制跳过某次循环,break 语句可以控制跳出循环体。

2.1 for

​ for 循环可以对任何提供迭代器(iterator)的对象进行遍历。

1)遍历整数范围

for (int i = 1; i < 5; i++) {println(i) // 打印: 1、2、3、4
}
for (i in 1..<5) {println(i) // 打印: 1、2、3、4
}

2)遍历数组 / 列表

def items = ["aa", "bb", "cc"]
// def items = ["aa", "bb", "cc"] as String[]
for (item in items) {println(item) // 打印: aa、bb、cc
}
items.each {println(it) // 打印: aa、bb、cc
}
for (index in items.indices) {println("items[$index]=${items[index]}") // 打印: items[0]=aa、items[1]=bb、items[2]=cc
}
items.eachWithIndex { item, index ->println("items[$index]=$item") // 打印: items[0]=aa、items[1]=bb、items[2]=cc
}

2.2 while

def i = 0
while(i < 5) {println(i)i++
}

2.3 do-while

def i = 0
do {println(i)i++
} while (i < 5)

2.4 continue

​ 使用 continue 语句,可以跳过循环体中 continue 后面的语句,继续执行下一轮循环。

1)单层循环

for (i in 1..5) {if (i == 3) continueprintln(i) // 打印: 1、2、4、5
}

2)多层循环

label: for (i in 1..3) {for (j in 4..6) {if (j == 5) continue labelprintln("($i,$j)") // 打印: (1,4)、(2,4)、(3,4)}
}

​ 说明:label 可以修改为任何符合变量命名规范的名字。

2.5 break

​ 使用 break 语句,可以跳出循环体,继续执行循环体后面的语句。

1)单层循环

for (i in 1..5) {if (i == 3) breakprintln(i) // 打印: 1、2
}

2)多层循环

label: for (i in 1..3) {for (j in 4..6) {if (j == 5) break labelprintln("($i,$j)") // 打印: (1,4)}
}

​ 说明:label 可以修改为任何符合变量命名规范的名字。

​ 声明:本文转自【Groovy】流程控制。

http://www.jsqmd.com/news/7193/

相关文章:

  • 【Groovy】函数、闭包、泛型
  • 关于onnxruntime依赖报错问题
  • LinuxC++——spdlog日志运用入门
  • C++设计模式之行为型模式:职责链模式(Chain of Responsibility) - 实践
  • 深入解析:金融/财务图表的强大可视化引擎——Highcharts Stock
  • 页面 HTTPS 化实战,从证书部署到真机验证的全流程(证书链、重定向、混合内容、抓包排查) - 实践
  • AT_abc308_h [ABC308Ex] Make Q
  • Coze源码分析-资源库-编辑插件-后端源码-核心技术与总结 - 教程
  • 函数-高级用法+闭包
  • 点云-标注-分类-航线规划软件 (一)点云自动分类 - 实践
  • JVM的内存分配策略有哪些?
  • 在Linux系统上一键配置DoH,解决DNS解析被污染
  • 完整教程:C 语言各种指针详解
  • 51单片机-实现DAC(PWM)数模转换PWM控制呼吸灯、直流电机实验教程 - 教程
  • Elasticsearch集群监控信息(亲测) - 教程
  • 基于Java springboot农村政务服务管理便捷的系统(源码+文档+运行视频+讲解视频)
  • Matplotlib子图布局与响应式设计实战:GridSpec与CSS框架深度结合 - 教程
  • SQL:concat函数(连接字符串)
  • 2025 北京地下室防潮品牌最新推荐排行榜:TOP3 实力品牌出炉,精准解决地下空间潮湿难题
  • python脚本统计fastq数据的GC含量
  • 第一次软件工程作业
  • 2025 年仿石漆品牌最新推荐排行榜:聚焦真石漆仿石漆,水包砂仿石漆,冠晶石仿石漆,外墙仿石漆,多彩仿石漆供采购参考
  • 基于Hadoop的美妆产品网络评价的数据采集与分析-django+spider - 指南
  • 关于数颜色
  • 诚信液压阀块定制厂家推荐榜:实力制造与精准工艺口碑之选
  • 浅谈 Bakas Trick / 不带删尺取 / 对顶栈
  • ESP32与SPI网口芯片DM9051ANX模块硬件引脚接法与ESP-IDF设定参数
  • 聚变堆:中国BEST装置全面开建
  • 如何用pivotby函数实现数据透视(2)
  • 2025 年彩钢板厂家 TOP 企业品牌推荐排行榜,复合彩钢板,保温彩钢板,耐腐蚀彩钢板,净化彩钢板推荐这十家公司!