文章目录

  • 一、使用 Java 语法循环
  • 二、使用 IntRange 循环
    • 1、使用默认的 IntRange 构造函数
    • 2、使用可设置翻转属性的 IntRange 构造函数
    • 3、使用可设置是否包含 to 的 IntRange 构造函数
  • 三、使用 0..9 简化方式的 IntRange 实例对象
  • 四、完整代码示例

一、使用 Java 语法循环


在 Groovy 中 , 使用 Java 语法进行循环 :

        // Java 语法样式的循环println ""print "( 1 ) : "for (int j = 0; j <= 9; j++) {print j + " "}

打印结果 :

( 1 ) : 0 1 2 3 4 5 6 7 8 9

二、使用 IntRange 循环


1、使用默认的 IntRange 构造函数

使用默认的 IntRange 实例对象控制循环 ;

构造函数 :

/*** 创建一个新的非包容性<code>IntRange</code>。如果 from <code>大于* <code>to</code>,将创建一个反向范围,并将<code>from</code>和<code>to</code> 进行交换。* * @param from 范围中的第一个数字开始。* @param to 范围内的最后一个数字。* 如果范围包含的值超过{@link Integer#MAX_VALUE},则@throws会引发IllegalArgumentException。*/public IntRange(int from, int to)

循环示例代码 :

// Groovy 循环 , 0 ~ 9 进行循环
println ""
print "( 1 ) : "
for (i in new IntRange(0, 9)) {print i + " "
}

执行结果 :

( 1 ) : 0 1 2 3 4 5 6 7 8 9

2、使用可设置翻转属性的 IntRange 构造函数

构造函数 :

/*** Creates a new non-inclusive aware <code>IntRange</code>.** @param from    the first value in the range.* @param to      the last value in the range.* @param reverse <code>true</code> if the range should count from*                <code>to</code> to <code>from</code>.* @throws IllegalArgumentException if <code>from</code> is greater than <code>to</code>.*/protected IntRange(int from, int to, boolean reverse)

代码示例 :

        // Groovy 循环 , 0 ~ 9 进行循环println ""print "( 2 ) : "for (i in new IntRange(0, 9, false)) {print i + " "}// Groovy 循环 , 9 ~ 0 进行循环println ""print "( 3 ) : "for (i in new IntRange(0, 9, true)) {print i + " "}

执行结果 :

( 2 ) : 0 1 2 3 4 5 6 7 8 9
( 3 ) : 9 8 7 6 5 4 3 2 1 0

3、使用可设置是否包含 to 的 IntRange 构造函数

构造函数 :

    /*** Creates a new inclusive aware <code>IntRange</code>.** @param from    the first value in the range.* @param to      the last value in the range.* @param inclusive <code>true</code> if the to value is included in the range.*/public IntRange(boolean inclusive, int from, int to)

代码示例 :

        // Groovy 循环 , 0 ~ 9 进行循环 , 不包含最后一个 to 元素 , 即 9// 只能打印出 0 ~ 8 的数字println ""print "( 4 ) : "for (i in new IntRange(false, 0, 9)) {print i + " "}// Groovy 循环 , 0 ~ 9 进行循环 , 包含最后一个 to 元素 , 即 9// 只能打印出 0 ~ 9 的数字println ""print "( 5 ) : "for (i in new IntRange(true, 0, 9)) {print i + " "}

执行结果 :

( 4 ) : 0 1 2 3 4 5 6 7 8
( 5 ) : 0 1 2 3 4 5 6 7 8 9

三、使用 0…9 简化方式的 IntRange 实例对象


0…9 的描述 , 相当于 new IntRange(0, 9) , 二者是等价的 ;

代码示例 :

        // Groovy 循环 , 0 ~ 9 进行循环println ""print "( 6 ) : "for (i in 0..9) {print i + " "}// 其中 0..9 相当于 new IntRange(0, 9)def range = 0..9println ""print "0..9 type : "println range.class

执行结果 :

( 6 ) : 0 1 2 3 4 5 6 7 8 9
0..9 type : class groovy.lang.IntRange

四、完整代码示例


完整代码示例 :

class Test {static void main(args) {// Java 语法样式的循环println ""print "( 0 ) : "for (int j = 0; j <= 9; j++) {print j + " "}// Groovy 循环 , 0 ~ 9 进行循环println ""print "( 1 ) : "for (i in new IntRange(0, 9)) {print i + " "}// Groovy 循环 , 0 ~ 9 进行循环println ""print "( 2 ) : "for (i in new IntRange(0, 9, false)) {print i + " "}// Groovy 循环 , 9 ~ 0 进行循环println ""print "( 3 ) : "for (i in new IntRange(0, 9, true)) {print i + " "}// Groovy 循环 , 0 ~ 9 进行循环 , 不包含最后一个 to 元素 , 即 9// 只能打印出 0 ~ 8 的数字println ""print "( 4 ) : "for (i in new IntRange(false, 0, 9)) {print i + " "}// Groovy 循环 , 0 ~ 9 进行循环 , 包含最后一个 to 元素 , 即 9// 只能打印出 0 ~ 9 的数字println ""print "( 5 ) : "for (i in new IntRange(true, 0, 9)) {print i + " "}// Groovy 循环 , 0 ~ 9 进行循环println ""print "( 6 ) : "for (i in 0..9) {print i + " "}// 其中 0..9 相当于 new IntRange(0, 9)def range = 0..9println ""print "0..9 type : "println range.classprintln ""}
}

执行结果 :

( 0 ) : 0 1 2 3 4 5 6 7 8 9
( 1 ) : 0 1 2 3 4 5 6 7 8 9
( 2 ) : 0 1 2 3 4 5 6 7 8 9
( 3 ) : 9 8 7 6 5 4 3 2 1 0
( 4 ) : 0 1 2 3 4 5 6 7 8
( 5 ) : 0 1 2 3 4 5 6 7 8 9
( 6 ) : 0 1 2 3 4 5 6 7 8 9
0..9 type : class groovy.lang.IntRange

【Groovy】循环控制 ( Java 语法循环 | 默认的 IntRange 构造函数 | 可设置翻转属性的 IntRange 构造函数 | 可设置是否包含 to 的构造函数 | 0..9 简写 )相关推荐

  1. 【Groovy】Groovy 语言特点简介 ( 支持 Java 语法 | 支持 Java 虚拟机 | Groovy 语言是动态语言 | Groovy 扩展 JDK | 编译时元编程 )

    文章目录 一.Groovy 支持 Java 语法 二.Groovy 支持 Java 虚拟机 三.Groovy 语言是 动态语言 四.Groovy 扩展 JDK 五.Groovy 编译时元编程 一.Gr ...

  2. Java是否支持默认参数值?

    我遇到了一些具有以下结构的Java代码: public MyParameterizedFunction(String param1, int param2) {this(param1, param2, ...

  3. Grade for Android 之二:Groovy 与Java的语法区别

    Groovy对Java开发者来说是尽可能的自然过渡.Groovy设计者设计Groovy时,遵循最小改变原则,尤其是有Java开发背景的开发者学习Groovy时. 如下列出了Java和Groovy的主要 ...

  4. 【Groovy】Groovy 方法调用 ( 字符串切割 | 使用 Java 语法切割字符串 | 使用 Groovy 语法切割字符串直接为变量赋值 | 数组赋值给变量 变量个数小于等于数组长度 )

    文章目录 一.字符串切割 1.使用 Java 语法切割字符串 2.使用 Groovy 语法切割字符串直接为变量赋值 3.数组赋值给变量 变量个数小于等于数组长度 二.完整代码示例 一.字符串切割 在 ...

  5. 【Groovy】Groovy 代码创建 ( 使用 Java 语法实现 Groovy 类和主函数并运行 | 按照 Groovy 语法改造上述 Java 语法规则代码 )

    文章目录 一.创建 Groovy 代码文件 二.使用 Java 语法实现 Groovy 类和主函数并运行 三.按照 Groovy 语法改造上述 Java 语法规则代码 一.创建 Groovy 代码文件 ...

  6. Java语法糖1:可变长度参数以及foreach循环原理

    语法糖 接下来几篇文章要开启一个Java语法糖系列,所以首先讲讲什么是语法糖.语法糖是一种几乎每种语言或多或少都提供过的一些方便程序员开发代码的语法,它只是编译器实现的一些小把戏罢了,编译期间以特定的 ...

  7. Java语言特性运用:各种Java语法特性是怎样被Spring各种版本巧妙运用的?

    Java语法变化 Java5(2004): 枚举.泛型.注解.封箱(解箱)- Java6(2006): @Override接口 Java7(2011): Diamond语法.多Catch.Try- J ...

  8. Java语法基础-2

    1. 语句 1.1 流程控制语句 在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说程序的流程对运行结果有直接的影响.所以,我们必须清楚每条语句的执行流程.而且,很多时候我 ...

  9. 【JavaSE04】Java中循环语句for,while,do···while

    Java的循环语句 引入: 生活中有循环,程序的世界也有循环. 思考:生活中有哪些循环的事情? 总结:什么是循环? 重复做类似的事情,而且有终止条件,如果没有终止条件会是怎样? 类似这样的情况,Jav ...

最新文章

  1. “环太平洋”走进现实,五角大楼研发人与武器互动的意念控制技术
  2. 那篇《中国AI觉醒》的文章,让西方的吃瓜群众们对中国展开了疯狂膜拜…不信你看
  3. 织梦动态PHP可以删除吗,DeDe织梦cms如何全站动态化,取消静态功能
  4. 转移指令的原理03 - 零基础入门学习汇编语言45
  5. c++ 中const的使用
  6. 【知识发现】隐语义模型LFM算法python实现(一)
  7. 自定义EL函数、自定义JSTL标签
  8. 嵌入式系统HAL原理与BSP的实现方法
  9. 计算机组成原理袁春风百度云,计算机组成原理 袁春风chap3homework.pdf
  10. php验证支付回调,php对微信支付回调处理的方法(合集)
  11. 微信小程序之验证码短信倒计时
  12. Windows开机自动启动Virtual Box虚拟机(官方指南手册)
  13. 检测鼠标是否双击_Rhino细分建模分享 Part3 鼠标简易结构设计
  14. 老李分享:《Linux Shell脚本攻略》 要点(二)
  15. AS1.3 及其以上预览版新插件-实验版(NDK)
  16. php函数讲解,php函数进阶讲解
  17. 2018-2019年江苏省高等学校“阿里云大数据技术实战训练营”大学生万人计划学术冬令营开营... 1
  18. 编程经验:关于如何在自己的网站或博客添加CNZZ站长统计功能
  19. sina.cn邮箱邀请
  20. 企业邮箱群发邮件 - 邮件群组群发邮件详解

热门文章

  1. Hadoop集群安装-CDH5(5台服务器集群)
  2. Python print函数用法,print 格式化输出
  3. Vmware ESX server CPU掩码导致的挂起
  4. 如何理解delegate (委托)设计模式
  5. 第五周-第11章节-Python3.5-内置模块详解之Xml模块
  6. 我的第一个Android程序
  7. 回顾2013 - 技术上
  8. Visual C# 2010 实现资源管理器
  9. 在Itanium2、Intel Fortran Compiler上安装VASP4.6
  10. 常见Web安全漏洞--------sql注入