【Groovy】流程控制

news/2025/10/2 12:06:56/文章来源:https://www.cnblogs.com/zhyan8/p/19122990

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.mzph.cn/news/924877.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Groovy】函数、闭包、泛型

1 函数 1.1 无参函数 ​ 1)常规调用 void myFun() {println("myFun") }myFun() // 打印: myFun​ 2)字符串声明函数 void "myFun"() {println("myFun") }myFun() // 打印: myFu…

wordpress软件网站模板下载莱芜人力资源部最新招聘信息

SQLite 是一个嵌入式 SQL 数据库引擎&#xff0c;它实现了一个自包含、无服务器、零配置、事务性 SQL 数据库引擎。 SQLite 的代码属于公共领域&#xff0c;因此可以免费用于任何商业或私人目的。 SQLite 是世界上部署最广泛的数据库&#xff0c;其应用程序数量之多&#xff0c…

关于onnxruntime依赖报错问题

最近在做图片审核功能,在开发时遇到了onnxruntime依赖报错报错内容在尝试多次后发现造成这一错误的主要原因是因为onnxruntime的版本和python版本不匹配 解决方法: 切换onnxruntime版本本次版本为

LinuxC++——spdlog日志运用入门

LinuxC++——spdlog日志运用入门2025-10-02 11:58 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !import…

大型门户网站建设包括哪些方面sns社交网站源码

文章导读本文介绍了OpenKG在区块链方向的一些实践和尝试。经过一年努力&#xff0c;OpenKG初步完成了底层区块链平台测试&#xff0c;以及OpenKG数据集、工具集和Openbase细粒度知识众包的上链测试工作。在这个测试平台中&#xff0c;已包含1033位确权的知识贡献者。上链测试两…

站长之家网页模板wordpress php speedy

LoadRunner中Action的迭代次数的设置和运行场景中设置 LoadRunner是怎么重复迭代和怎么增加并发运行的呢&#xff1f;另外&#xff0c;在参数化时&#xff0c;对于一次压力测试中均只能用一次的资源应该怎么参数化呢&#xff1f;就是说这些资源用了一次就不能在用了的。&#x…

微信平台制作网站开发上海网站排名优化公司

ID&#xff1a;技术让梦想更伟大整理:李肖遥申明&#xff1a;所有图片都源自网络素材&#xff0c;侵删。这是我自己收集的&#xff0c;并花大量时间整理的可说最全的Linux/C/C思维导图。有些图可能不是高清&#xff0c;但是放大即可看清楚。linux思维导图认识LinuxLinux学习路径…

做免费网站安全吗WordPress能装ssr

发表于&#xff1a;2009-03-04 09:51:44 楼主IT人不要一直做技术 【引子】感觉这篇文章很有深意&#xff0c;正是我所想说的话。希望大家有借鉴。 【原文】 我现在是自己做&#xff0c;但我此前有多年在从事软件开发工作&#xff0c;当回过头来想一想自己&#xff0c;觉得特别…

C++设计模式之行为型模式:职责链模式(Chain of Responsibility) - 实践

C++设计模式之行为型模式:职责链模式(Chain of Responsibility) - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family…

制作网站软件哪个好网站系统分析报告

1.字节码 1.1 什么是字节码&#xff1f; Java之所以可以“一次编译&#xff0c;到处运行”&#xff0c;一是因为JVM针对各种操作系统、平台都进行了定制&#xff0c;二是因为无论在什么平台&#xff0c;都可以编译生成固定格式的字节码&#xff08;.class文件&#xff09;供JVM…

珠海网站建设哪家好微商怎么做_和淘宝网站一样吗?

认识RBAC RBAC&#xff08;基于角色的访问控制&#xff09;是一种将权限分配给用户和服务的方法&#xff0c;基于他们的角色来确定他们可以访问和修改的资源。K8s使用RBAC作为来访请求鉴权的机制之一。 场景&#xff1a;访问K8s接口时的认证和鉴权 某些场景下&#xff0c;我…

深入解析:金融/财务图表的强大可视化引擎——Highcharts Stock

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

页面 HTTPS 化实战,从证书部署到真机验证的全流程(证书链、重定向、混合内容、抓包排查) - 实践

页面 HTTPS 化实战,从证书部署到真机验证的全流程(证书链、重定向、混合内容、抓包排查) - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block …

关于网站建设的调查报告重庆工程交易信息网

文章目录 String简单介绍常见命令应用场景 Hash简单介绍常见命令应用场景 List简单介绍常见命令应用场景 Set简单介绍常见命令应用场景 Sorted Set(Zset)简单介绍常见命令应用场景 Bitmap简单介绍常见命令应用场景 附录 Redis支持多种数据类型&#xff0c;比如String、hash、li…

路由器做网站80端口购物网站功能模块图

目录 步骤一&#xff1a;正确连接网线&#xff0c;插电开机正确连接网线&#xff1a; 认识系统灯&#xff1a; 插电开机&#xff1a; 步骤二&#xff1a;开机之后&#xff0c;系统的基本设置 1.进入设置界面&#xff1a; 2.设置辅助热点wifi&#xff1a; 3.设置日常…

网站建设哪里有wordpress的网站怎么保存

1.可放封闭原则 概念&#xff1a;一个软件实体如类、模块和函数应该对扩展开放&#xff0c;对修改关闭。即软件实体应该尽量在不修改原有代码的情况下进行扩展 2.里式替换原则 概念&#xff1a;所有引用父类的地方必须能透明地使用其子类的对象 3.依赖倒置原则 概念&#…

青岛网站建设公司外包photoshop免费素材库

一、数据安全的守护神&#xff1a;自动备份文件的重要性 在数字化时代&#xff0c;电脑中的文件承载着我们的工作成果、个人回忆以及众多重要信息。然而&#xff0c;数据丢失的风险无处不在&#xff0c;无论是硬件故障、软件崩溃&#xff0c;还是恶意软件的攻击&#xff0c;都…

AT_abc308_h [ABC308Ex] Make Q

还是比较牛的。 首先枚举一条边,钦定其中一个点,枚举这个点的出边作为 Q,然后再跑一个最小环就是结果了。 注意到此时是 \(O(n^4)\) 的,我们利用线段树分治解决 Floyd 中挖掉一个点求最短路的问题。 同样将枚举点换…

Coze源码分析-资源库-编辑插件-后端源码-核心技术与总结 - 教程

Coze源码分析-资源库-编辑插件-后端源码-核心技术与总结 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Co…

函数-高级用法+闭包

函数:增加代码可读性和重用性定义函数(3种形式): def funk() def funk(a,b) def funk(*args,**kwargs)调用函数(高级用法):1.函数做元素:2种形式 def funk1 ():print(888) def funk2():print(222) conten…