- Clojure 教程
- Clojure - 首页
- Clojure - 概述
- Clojure - 环境
- Clojure - 基本语法
- Clojure - REPL
- Clojure - 数据类型
- Clojure - 变量
- Clojure - 运算符
- Clojure - 循环
- Clojure - 决策
- Clojure - 函数
- Clojure - 数字
- Clojure - 递归
- Clojure - 文件 I/O
- Clojure - 字符串
- Clojure - 列表
- Clojure - 集合
- Clojure - 向量
- Clojure - 映射
- Clojure - 命名空间
- Clojure - 异常处理
- Clojure - 序列
- Clojure - 正则表达式
- Clojure - 断言
- Clojure - 解构
- Clojure - 日期和时间
- Clojure - 原子
- Clojure - 元数据
- Clojure - StructMaps
- Clojure - 代理
- Clojure - 观察者
- Clojure - 宏
- Clojure - 参考值
- Clojure - 数据库
- Clojure - Java 接口
- Clojure - 并发编程
- Clojure - 应用
- Clojure - 自动化测试
- Clojure - 库
- Clojure 有用资源
- Clojure - 快速指南
- Clojure - 有用资源
- Clojure - 讨论
Clojure - 循环语句
loop 特殊形式不像 ‘for’ 循环。loop 的用法与 let 绑定相同。但是,loop 设置了一个递归点。递归点设计用于与 recur 一起使用,这意味着 loop 始终与 recur 一起使用。要使循环发生,为 recurs 指定的参数数量(元数)必须与 loop 的绑定数量一致。这样,recur 返回到 loop。
语法
以下是 loop 语句的通用语法。
loop [binding] (condition (statement) (recur (binding)))
以下是此循环的图示表示。
示例
以下是一个 ‘for-in’ 语句的示例。
(ns clojure.examples.hello
(:gen-class))
;; This program displays Hello World
(defn Example []
(loop [x 10]
(when (> x 1)
(println x)
(recur (- x 2)))))
(Example)
在上面的示例中,我们首先使用 loop 语句将 'x' 的值绑定到 10。然后,我们使用 when 条件子句来查看 'x' 的值是否小于 1。然后,我们将 'x' 的值打印到控制台,并使用 recur 语句重复循环。在 'x' 的值递减 2 后,循环将重复。
输出
以上代码产生以下输出。
10 8 6 4 2
clojure_loops.htm
广告