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

【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】流程控制

1 选择结构 Groovy 中选择结构主要包含 if -else、switch 语句&#xff0c;并且可以返回结果。 1.1 if-else def score 85 if (score > 90) {println("优秀") } else if (score > 80) {println("良好") } else if (score > 60) {println("…...

腾讯游戏完成架构调整 IEG新设五大产品事业部

易采游戏网2月28日独家消息&#xff1a;继1月份腾讯天美工作室群完成内部组织架构调整后&#xff0c;腾讯旗下互动娱乐事业群&#xff08;IEG&#xff09;再次宣布对组织架构进行优化调整。此次调整的核心在于新设立了五大产品事业部&#xff0c;包括体育产品部、音舞产品部、V…...

达梦数据库系列之安装及Mysql数据迁移

达梦数据库系列之安装及Mysql数据迁移 1. 达梦数据库1.1 简介1.2 Docker安装达梦1.2.1 默认密码查询1.2.2 docker启动指定密码 1.3 达梦数据库连接工具1.3.1 快捷键 2 Mysql数据库迁移至达梦2.1 使用SQLark进行数据迁移 1. 达梦数据库 1.1 简介 DM8是达梦公司在总结DM系列产品…...

什么是 MGX:MetaGPT

什么是 MGX:MetaGPT MetaGPT是由思码逸(OpenDILab)团队开发的一款专注于生成式AI驱动的软件开发框架,MGX可能是其衍生或升级的相关成果,它创新性地将大语言模型引入软件开发流程,模拟人类软件团队的协作方式,能让用户通过自然语言描述需求,即可自动生成完整的软件项目,…...

java jar包内的jar包如何打补丁

问题描述&#xff1a; 主包&#xff1a;hisca.jar&#xff0c;解压后 BOOT-INFO/lib下有其他jar包 因为一个小bug&#xff0c;需要修改这个hisca包下BOOT-INF/lib下的子jar包service-hisca-impl-1.0.0.jar中的一个service类及xml文件 操作步骤&#xff1a; 1、主包jar -xvf …...

一个借助ai分析市场交易数据的流程方法

回答和代码借助 AI 生成&#xff0c;仅供参考&#xff0c;不构成任何专业建议。 如有投资损失请自负盈亏。 一个提取比特币的不同周期数据&#xff0c;并进行文本的初步分析的程序。 用途&#xff1a;把文本提供给ai&#xff0c;进行深度思考&#xff0c;从而达到一个相对比较…...

安装electron 提示RequestError: certificate has expired

最近需要开发electron&#xff0c;遇到了一个生产问题&#xff0c;使用了很多办法都不生效。 现在记录下具体情况 一执行 yarn add electron 就开始报错 [2/4] &#x1f69a; Fetching packages... [3/4] &#x1f517; Linking dependencies... [4/4] &#x1f528; B…...

Flutter状态管理框架GetX最新版详解与实践指南

一、GetX框架概述 GetX是Flutter生态中轻量级、高性能的全能开发框架&#xff0c;集成了状态管理、路由导航、依赖注入等核心功能&#xff0c;同时提供国际化、主题切换等实用工具。其优势在于代码简洁性&#xff08;减少模板代码约70%&#xff09;和高性能&#xff08;基于观…...

详细对比所有开源许可及其不同版本

qwen 以下是基于知识库内容对常见开源许可证及其不同版本的详细对比&#xff0c;重点突出版本间差异和核心条款变化&#xff1a; 1. GPL&#xff08;GNU General Public License&#xff09; 版本: v2 vs v3 GPLv2&#xff08;1991&#xff09;: 要求衍生代码开源&#xff0c…...

【企业场景】上线的项目如何进行限流

一、常见的四种速率限流算法 对于限流&#xff0c;最为直接的就是速率限流了 固定窗口算法 比如 10r/s 就是把时间线分为 1s 一段&#xff0c;也就是周期为 1s&#xff0c;对一个时间段的请求进行计数&#xff0c;超过 10 则舍弃&#xff0c;未超过则直接处理经过 1s 后&…...

git - study

文章目录 git - study概述可以用 git gui工具来添加快捷命令工具如果要在提交日志中搜索&#xff0c;可以用gitk的view编辑功能实验环境直接用git自带环境进行git操作的好处查看git所有配置配置全局数据配置项目专用的数据查询配置数据的原始值配置git使用的文本编辑器获取某个…...

编写一个程序,输出1到100的所有质数(Python版)

编写一个程序&#xff0c;输出1到100的所有质数 以下是一个用 Python 编写的程序&#xff0c;用于输出 1 到 100 的所有质数&#xff1a; def is_prime(n):# 检查 n 是否为质数if n < 1: # 如果 n 小于等于 1&#xff0c;则不是质数return False# 遍历从 2 到 n 的平方根的…...

wifi5和wifi6,WiFi 2.4G、5G,五类网线和六类网线,4G和5G的区别

wifi5和wifi6的区别 是Wi-Fi 5和Wi-Fi 6的选择与路由器密切相关。路由器是创建和管理无线网络的设备,它决定了网络的类型和性能。具体来说: 路由器的标准支持:路由器可以支持不同的Wi-Fi标准,如Wi-Fi 5(802.11ac)和Wi-Fi 6(802.11ax)。支持Wi-Fi 6的路由器能够提供更高…...

FPGA之硬件设计笔记-持续更新中

目录 1、说在前面2、FPGA硬件设计总计说明3、 原理图详解 - ARITX - 7 系列3.1 顶层框图介绍3.2 FPGA 电源sheet介绍&#xff1a;3.2.1 bank 14 和 bank 15的供电3.2.2 bank 0的供电3.2.3 Bank34 35 的供电 3.3 核电压和RAM电压以及辅助电压 4 原理图详解-- Ultrascale ARTIX4.…...

Python--内置模块和开发规范(上)

1. 内置模块 1.1 JSON 模块 核心功能 序列化&#xff1a;Python 数据类型 → JSON 字符串 import json data [{"id": 1, "name": "武沛齐"}, {"id": 2, "name": "Alex"}] json_str json.dumps(data, ensure_a…...

步步为营:用 torch.arange 快速生成数字序列

前言 在 PyTorch 中,torch.arange 就像一个神奇的小精灵,悄然无声地帮助你生成一系列数值,简直是深度学习模型的“数字魔法师”。你只需简单的几个参数,它就能为你呈现完美的数值序列,从而让数据准备工作变得轻松愉快。你可能会问,这个小精灵到底是怎么做到的?它怎么能…...

使用Spring Data Redis操作Redis

使用Spring Data Redis操作Redis 文章目录 使用Spring Data Redis操作Redis1. 添加依赖2. 配置Redis连接3. 创建Redis配置类4. 编写Redis操作类5. 操作各种数据类型操作字符串&#xff08;String&#xff09;操作列表&#xff08;List&#xff09;操作集合&#xff08;Set&…...

嵌入式开发:傅里叶变换(5):STM32和Matlab联调验证FFT

目录 1. MATLAB获取 STM32 的原始数据 2. 将数据上传到电脑 3. MATLAB 接收数据并验证 STM32进行傅里叶代码 结果分析 STM32 和 MATLAB 联调是嵌入式开发中常见的工作流程&#xff0c;通常目的是将 STM32 采集的数据或控制信号传输到 MATLAB 中进行实时处理、分析和可视化…...

【无人机三维路径规划】基于豪猪算法CPO、蜣螂算法DBO、人工兔ARO实现复杂山地模型下无人机路径规划附Matlab代码

无人机三维路径规划 一、引言 1.1、研究背景与意义 无人机技术在近年来得到了快速发展&#xff0c;其在军事侦察、民用测绘、物流配送和灾难救援等领域的应用日益广泛。路径规划作为无人机技术中的核心问题之一&#xff0c;直接影响到无人机的飞行效率和安全性。在复杂多变的…...

Cursor AI编程-详细教程

一点准备工作 Cursor方法论&#xff1a;简单到没有方法 Cursor能做什么 Cursor官网&#xff1a;https://www.cursor.com/ja Cursor文档&#xff1a;Cursor – Welcome to Cursor Cursor论坛&#xff1a;Weekly - Cursor - Community Forum 写程序代码 举例&#xff1a; 设…...

AI关于SHAP分析与列线图(算法)解释线性模型矛盾之处的解释

AI关于SHAP分析与列线图&#xff08;算法&#xff09;解释线性模型矛盾之处的解释 两种解释方法在个案的局部解释方面&#xff0c;有矛盾之处&#xff0c;其背后的原理已经超出了我的知识范畴&#xff0c;以下是询问AI的几个问题&#xff0c;希望能从中梳理出一个合理的解释。…...

上海市计算机学会竞赛平台2024年5月月赛丙组城市距离之和

城市距离之和 内存限制: 256 Mb时间限制: 1000 ms 题目描述 设 (x,y)(x,y) 与 (x′,y′)(x′,y′) 是平面上的两个点的坐标&#xff0c;它们之间的城市距离定义为 ∣x−x′∣∣y−y′∣∣x−x′∣∣y−y′∣ 给定 nn 个点&#xff0c;请计算所有点对之间的城市距离之和。 …...

处理DeepSeek返回的markdown文本

处理DeepSeek返回的markdown文本 markdown预览组件&#xff0c;支持公式显示&#xff0c;支持uniapp。 相关依赖 markdown-itmarkdown-it-mathjaxmarkdown-it-katexmarkdown-it-latexkatexgithub-markdown-css 组件源码 <!--* Description: markdown显示组件* Author: wa…...

《今日AI-人工智能-编程日报》整理于——头条新闻、豆包日报

技术突破 OpenAI 发布 GPT-4.5&#xff1a;OpenAI 正式推出新一代大模型 GPT -4.5&#xff0c;语言理解、情商及逻辑推理能力显著增强&#xff0c;幻觉问题大幅减少&#xff0c;计算效率较 GPT-4 提升超 10 倍&#xff0c;已逐步向用户开放试用。国产模型 Kimi 发布 k1.6 版本&…...

JavaEE [特殊字符] TCP协议:三次握手四次挥手全图解

&#x1f31f; 一、TCP核心特性&#xff1a;可靠传输的秘密 1️⃣ 有连接 & 全双工 双向通道&#xff1a;建立连接后&#xff0c;客户端↔服务器可同时收发数据可靠传输三板斧&#xff1a; 确认应答&#xff08;ACK&#xff09; 接收方返回ACK接收序号数据长度示例&#…...

解决 Ubuntu 24.04 虚拟机内无法ping 通 Hostname 的问题

问题背景 在 VMware 或 VirtualBox 中安装 Ubuntu 24.04 虚拟机时&#xff0c;遇到无法通过主机名&#xff08;Hostname&#xff09;进行网络通信的问题。例如&#xff0c;将虚拟机的主机名设置为 001&#xff0c;执行 ping 001 时返回 ping 0.0.0.1 并超时。此问题通常由 主机…...

wzl-django学习

####################################################总的urls.py from django.contrib import admin from django.urls import path,include, re_path from django.views.static import serve from django.conf import settings from drf_yasg import openapi from drf_yas…...

(十 三)趣学设计模式 之 模版方法模式!

目录 一、 啥是模板方法模式&#xff1f;二、 为什么要用模板方法模式&#xff1f;三、 模板方法模式的实现方式四、 模板方法模式的优缺点五、 模板方法模式的应用场景六、 总结 &#x1f31f;我的其他文章也讲解的比较有趣&#x1f601;&#xff0c;如果喜欢博主的讲解方式&a…...

泛型编程、函数模板、类模板

目录 一、泛型编程 1.泛型编程提出背景 1.1.代码复用案例解析 案例1&#xff1a;实现一个交换函数&#xff0c;并对不同类型参数进行函数重载 (1)调试 (2)代码解析 ①代码复用问题 ②泛型编程的解决方案 ③上面泛型Swap函数模版的优点 1.2.泛型编程提出背景 2.泛型编…...

【Vue3】浅谈setup语法糖

Vue3 的 setup 语法糖是通过 <script setup> 标签启用的特性&#xff0c;它是对 Composition API 的进一步封装&#xff0c;旨在简化组件的声明式写法&#xff0c;同时保留 Composition API 的逻辑组织能力。以下是其核心概念和原理分析&#xff1a; 一、<script setu…...