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

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

四、完整代码示例


完整代码示例 :


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..9
        println ""
        print "0..9 type : "
        println range.class
        println ""
    }
}


执行结果 :

( 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



目录
相关文章
|
2月前
|
Java 开发工具 Android开发
Kotlin语法笔记(26) -Kotlin 与 Java 共存(1)
本系列教程笔记详细讲解了Kotlin语法,适合需要深入了解Kotlin的开发者。若需快速学习Kotlin,建议查看“简洁”系列教程。本期重点介绍了Kotlin与Java的共存方式,包括属性、单例对象、默认参数方法、包方法、扩展方法以及内部类和成员的互操作性。通过这些内容,帮助你在项目中更好地结合使用这两种语言。
53 1
|
25天前
|
Java
java do while 的语法怎么用?
java do while 的语法怎么用?
37 3
|
2月前
|
Java 编译器 Android开发
Kotlin语法笔记(28) -Kotlin 与 Java 混编
本系列教程详细讲解了Kotlin语法,适合需要深入了解Kotlin的开发者。对于希望快速学习Kotlin的用户,推荐查看“简洁”系列教程。本文档重点介绍了Kotlin与Java混编的技巧,包括代码转换、类调用、ProGuard问题、Android library开发建议以及在Kotlin和Java之间互相调用的方法。
33 1
|
2月前
|
安全 Java 编译器
Kotlin语法笔记(27) -Kotlin 与 Java 共存(二)
本教程详细讲解Kotlin语法,适合希望深入了解Kotlin的开发者。若需快速入门,建议查阅“简洁”系列教程。本文重点探讨Kotlin与Java共存的高级话题,包括属性访问、空安全、泛型处理、同步机制及SAM转换等,助你在项目中逐步引入Kotlin。
30 1
|
2月前
|
Java 编译器 Android开发
Kotlin语法笔记(28) -Kotlin 与 Java 混编
Kotlin语法笔记(28) -Kotlin 与 Java 混编
35 2
|
Java
【Java 从入坑到放弃】No 5. 控制流程
【Java 从入坑到放弃】No 5. 控制流程
68 0
【Java 从入坑到放弃】No 5. 控制流程
|
1天前
|
Java
Java—多线程实现生产消费者
本文介绍了多线程实现生产消费者模式的三个版本。Version1包含四个类:`Producer`(生产者)、`Consumer`(消费者)、`Resource`(公共资源)和`TestMain`(测试类)。通过`synchronized`和`wait/notify`机制控制线程同步,但存在多个生产者或消费者时可能出现多次生产和消费的问题。 Version2将`if`改为`while`,解决了多次生产和消费的问题,但仍可能因`notify()`随机唤醒线程而导致死锁。因此,引入了`notifyAll()`来唤醒所有等待线程,但这会带来性能问题。
Java—多线程实现生产消费者
|
3天前
|
安全 Java Kotlin
Java多线程——synchronized、volatile 保障可见性
Java多线程中,`synchronized` 和 `volatile` 关键字用于保障可见性。`synchronized` 保证原子性、可见性和有序性,通过锁机制确保线程安全;`volatile` 仅保证可见性和有序性,不保证原子性。代码示例展示了如何使用 `synchronized` 和 `volatile` 解决主线程无法感知子线程修改共享变量的问题。总结:`volatile` 确保不同线程对共享变量操作的可见性,使一个线程修改后,其他线程能立即看到最新值。
|
3天前
|
消息中间件 缓存 安全
Java多线程是什么
Java多线程简介:本文介绍了Java中常见的线程池类型,包括`newCachedThreadPool`(适用于短期异步任务)、`newFixedThreadPool`(适用于固定数量的长期任务)、`newScheduledThreadPool`(支持定时和周期性任务)以及`newSingleThreadExecutor`(保证任务顺序执行)。同时,文章还讲解了Java中的锁机制,如`synchronized`关键字、CAS操作及其实现方式,并详细描述了可重入锁`ReentrantLock`和读写锁`ReadWriteLock`的工作原理与应用场景。
|
3天前
|
安全 Java 编译器
深入理解Java中synchronized三种使用方式:助您写出线程安全的代码
`synchronized` 是 Java 中的关键字,用于实现线程同步,确保多个线程互斥访问共享资源。它通过内置的监视器锁机制,防止多个线程同时执行被 `synchronized` 修饰的方法或代码块。`synchronized` 可以修饰非静态方法、静态方法和代码块,分别锁定实例对象、类对象或指定的对象。其底层原理基于 JVM 的指令和对象的监视器,JDK 1.6 后引入了偏向锁、轻量级锁等优化措施,提高了性能。
15 3