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 方法实现。

相关推荐
嚴寒2 小时前
Halo 博客系统部署配置
后端
不会算法的小灰2 小时前
Spring Boot 实现邮件发送功能:整合 JavaMailSender 与 FreeMarker 模板
java·spring boot·后端
数据知道3 小时前
Go基础:json文件处理详解(标准库`encoding/json`)
开发语言·后端·golang·json·go语言
IT_陈寒3 小时前
Vite 5.0 性能优化实战:3 个关键配置让你的构建速度提升50%
前端·人工智能·后端
小咕聊编程3 小时前
【含文档+PPT+源码】基于SpringBoot+Vue的停车场管理系统
vue.js·spring boot·后端·毕业设计·停车场
武昌库里写JAVA9 小时前
Java设计模式之工厂模式
java·vue.js·spring boot·后端·sql
一只学java的小汉堡13 小时前
Spring Cloud RabbitMQ 详解:从基础概念到秒杀实战
开发语言·后端·ruby
你的人类朋友13 小时前
【Node】Node.js 多进程与多线程:Cluster 与 Worker Threads 入门
前端·后端·node.js
烈风13 小时前
011 Rust数组
开发语言·后端·rust