Scala - do-while 循环
与在循环顶部测试循环条件的 while 循环不同,do-while 循环在循环底部检查其条件。do-while 循环类似于 while 循环,但 do-while 循环保证至少执行一次。
语法
以下是 do-while 循环的语法。
do {
statement(s);
}
while( condition );
注意条件表达式出现在循环的末尾,因此循环中的语句在测试条件之前会先执行一次。如果条件为真,控制流将跳回到 do,然后循环中的语句再次执行。这个过程会重复进行,直到给定条件变为 false 为止。
流程图
Scala do-while 循环示例
尝试以下示例程序,以理解 Scala 编程语言中的循环控制语句(do while 语句)——
object Demo {
def main(args: Array[String]) {
// 本地变量声明:
var a = 10;
// do 循环执行
do {
println( "Value of a: " + a );
a = a + 1;
}
while( a < 20 )
}
}
将上述程序保存为 Demo.scala。使用以下命令来编译和执行该程序。
命令
>scalac Demo.scala >scala Demo
输出
value of a: 10 value of a: 11 value of a: 12 value of a: 13 value of a: 14 value of a: 15 value of a: 16 value of a: 17 value of a: 18 value of a: 19
Scala 3 中 do while 循环的支持
Scala 3 中不再直接支持 do-while 循环。虽然像 C++ 和 Java 等其他语言有专用的 do-while 循环语法,但 Scala 选择移除它,转而使用 while 循环来满足所有循环需求。
Scala 移除 do-while 循环的原因如下 ——
- 表达能力 − 使用块作为条件的 while 循环可以实现与 do-while 循环相同的功能。
- 简洁性 − 只使用一种循环结构(while)可以使语言更简洁,并减少潜在的混淆。
不过,你仍然可以使用一个小技巧,通过 while 循环来实现类似于 do-while 循环的行为。
尝试以下示例程序,以理解在 Scala 编程语言中使用 while 循环实现类似于 do-while 循环的行为。
示例
object Demo {
def main(args: Array[String]): Unit = {
// 本地变量声明:
var a = 10
// 使用 while 循环实现的 do-while 循环等价形式
while (a < 20) {
println("Value of a: " + a)
a += 1
}
}
}
在这个示例中,我们在每次迭代之前检查条件 a < 20。它将产生与 do-while 循环相同的效果,即只要 a 小于 20 就执行循环体。
将上述程序保存为 Demo.scala。使用以下命令来编译和执行该程序。
命令
>scalac Demo.scala >scala Demo
输出
Value of a: 10 Value of a: 11 Value of a: 12 Value of a: 13 Value of a: 14 Value of a: 15 Value of a: 16 Value of a: 17 Value of a: 18 Value of a: 19