Scala 循环
-
循环
您可能会遇到需要多次执行一段代码的情况。通常,语句是按顺序执行的:函数中的第一个语句首先执行,然后第二个执行,依此类推。编程语言提供了各种控制结构,允许更复杂的执行路径。循环语句使我们可以多次执行一个语句或一组语句。下面给出的是大多数编程语言中循环语句的一般形式-Scala语言提供了以下类型的循环来处理循环需求。循环类型 描述 while循环 在给定条件为真时重复一个语句或一组语句。它在执行循环体之前测试条件。 for循环 多次执行一系列语句,并简化管理循环变量的代码。 do... while循环 它更像while语句,除了它在循环主体的末尾测试条件(do...while循环至少会执行一次)。 嵌套循环 您可以在任何其他while,for或do..while循环内使用一个或多个循环。 -
while循环
语法:while(condition){ statement(s); }
流程图:这里,要注意的关键是,while循环可能根本不执行。当测试条件第一次并且结果为false时,将跳过循环主体,并执行while循环之后的第一条语句。范例:
尝试一下object Demo { def main(args: Array[String]):Unit = { // Local variable declaration: var a = 10; // while loop execution while( a < 20 ){ println( "Value of a: " + a ); a = a + 1; } } }
-
for循环
语法:for( var x <- Range ){ statement(s); }
在这里,Range可以是一个数字Range,它表示为i到j或有时像i直到j。左箭头←运算符称为generator,之所以这样命名,是因为它正在生成Range内的各个值。尝试使用以下示例程序来了解Scala编程语言中的循环控制语句(for语句)。范例:
尝试一下object Demo { def main(args: Array[String]):Unit = { var a = 0; // for loop execution with a range for( a <- 1 to 10){ println( "Value of a: " + a ); } } }
-
do...while循环
与for和while循环不同,for和while循环在循环的顶部测试循环条件,而C语言中的do ... while循环在循环的底部检查其条件。do...while循环类似于while循环,但事实上,它是保证执行至少一次。语法:do { statement(s); } while( condition );
请注意,条件表达式出现在循环的末尾,因此循环中的语句在测试条件之前执行一次。如果条件为真,则控制流跳回去do,并且循环中的语句再次执行。重复此过程,直到给定条件变为假。流程图:范例:
尝试一下object Demo { def main(args: Array[String]):Unit = { // Local variable declaration: var a = 10; // do loop execution do { println( "Value of a: " + a ); a = a + 1; } while( a < 20 ) } }
-
循环控制语句
循环控制语句从其正常顺序更改执行。当执行离开作用域时,在该作用域中创建的所有自动对象都将被销毁。C支持以下控制语句。控制声明 描述 break声明 终止循环或switch语句,并在循环或switch后立即将执行的语句。 -
break声明
因此,Scala中没有内置的break语句,但是如果你运行的是Scala 2.8+版本,那么就可以使用break语句。当在循环中遇到break语句时,循环立即终止,程序控制在循环之后的下一个语句处恢复。语法:// 导入包 import scala.util.control._ // 创建一个break对象,如下所示 val loop = new Breaks; // 保持循环内部的可breakable,如下所示 loop.breakable { // 这里开始循环 for(...){ .... // Break will go here loop.break; } }
流程图:范例:
尝试一下import scala.util.control._ object Demo { def main(args: Array[String]):Unit = { var a = 0; val numList = List(1,2,3,4,5,6,7,8,9,10); val loop = new Breaks; loop.breakable { for( a <- numList){ println( "Value of a: " + a ); if( a == 4 ){ loop.break; } } } println( "After the loop" ); } }
-
无限循环
如果条件永远不会为假,则循环将变成无限循环。如果您使用的是Scala,则while循环是实现无限循环的最佳方法。以下程序实现了无限循环。object Demo { def main(args: Array[String]):Unit = { var a = 10; // An infinite loop. while( true ){ println( "Value of a: " + a ); } } }
如果执行上述代码,它将进入无限循环,您可以通过按Ctrl + C键终止。Value of a: 10 Value of a: 10 Value of a: 10 Value of a: 10 …………….