Scala的while语句循环

在 Scala 中,while 语句是一种常用的循环结构,用于重复执行一段代码块,直到指定的条件变为 false。它的语法和功能与 Java、C 等语言中的 while 循环类似,主要用于不确定循环次数但已知循环终止条件的场景。

基本语法

scala 复制代码
while (条件表达式) {
  // 循环体:当条件为true时执行的代码
}
  • 条件表达式 :返回布尔值(truefalse)。每次循环开始前会检查该条件,若为 true 则执行循环体,否则退出循环。
  • 循环体 :可以是单条语句或用 {} 包裹的多条语句(推荐始终用 {} 包裹,增强可读性)。

执行流程

  1. 检查 while 后的条件表达式。
  2. 若条件为 true,执行循环体中的代码,执行完毕后回到步骤 1 再次检查条件。
  3. 若条件为 false,直接退出循环,继续执行后续代码。

示例 1:基本用法

打印 1 到 5 的数字:

scala 复制代码
var i = 1  // 初始化循环变量
while (i <= 5) {  // 循环条件:i不大于5
  println(i)  // 循环体:打印i
  i += 1      // 更新循环变量(避免无限循环)
}

输出:

plaintext 复制代码
1
2
3
4
5

示例 2:无限循环与 break

Scala 本身没有内置的 break 关键字(用于强制退出循环),但可以通过 scala.util.control.Breaks 中的 breakbreakable 实现类似功能。

例如,找到第一个能被 7 整除的 100 以内的数:

scala 复制代码
import scala.util.control.Breaks._  // 导入break相关工具

var num = 1
breakable {  // 包裹可能需要break的代码块
  while (num <= 100) {
    if (num % 7 == 0) {
      println(s"找到第一个能被7整除的数:$num")
      break()  // 强制退出循环
    }
    num += 1
  }
}

输出:

plaintext 复制代码
找到第一个能被7整除的数:7

注意事项

  1. 循环变量初始化while 循环的变量需要在外部初始化(如示例中的 inum),否则可能导致编译错误。
  2. 避免无限循环 :循环体中必须包含更新循环变量的逻辑(如 i += 1),否则若条件始终为 true,会导致无限循环。
  3. 与 for 循环的区别while 循环更适合 "条件驱动" 的循环(不确定次数),而 for 循环更适合 "迭代范围明确" 的场景(如遍历集合)。
  4. 返回值while 循环在 Scala 中是语句 (statement),而非表达式(expression),没有返回值(返回 Unit 类型,类似 Java 中的 void)。

总结

while 循环是 Scala 中控制重复执行的基础结构,语法简洁,适用于基于条件的循环场景。如需在循环中提前退出,可借助 Breaks 工具类的 break 方法实现。

相关推荐
GreenTea4 小时前
一文搞懂Harness Engineering与Meta-Harness
前端·人工智能·后端
我是大猴子6 小时前
Spring代理类为何依赖注入失效?
java·后端·spring
码事漫谈7 小时前
手把手带你部署本地模型,让你Token自由(小白专属)
前端·后端
码农BookSea8 小时前
ReAct:让大模型学会边想边做
后端·ai编程
码农BookSea8 小时前
10分钟掌握 JSON-RPC 协议,面试加分、设计不踩坑
后端
凤年徐8 小时前
C++手撕红黑树:从0到200行,拿下STL map底层核心
c++·后端·算法
IT_陈寒8 小时前
Python的列表推导式里藏了个坑,差点让我加班到凌晨
前端·人工智能·后端
卷无止境9 小时前
podman与docker的区别和生产环境最佳实践
后端
程途知微9 小时前
ConcurrentHashMap线程安全实现原理全解析
java·后端
Mars酱10 小时前
1分钟编写贪吃蛇 | JSnake贪吃蛇单机版
java·后端·开源