Scala中的for循环

Scala中的for循环

Scala中的for循环用于多次执行代码块。它执行块n次,其中n由循环开始之前初始化的某个整数指定。这意味着程序员可以事先知道循环要执行的确切时间。

在Scala中,有许多类型的有效for循环具有特定用途,并且可以根据用户需要在代码中使用。他们是,

  1. for循环使用范围
  2. 包含集合的for循环

  3. 带过滤器的for循环

  4. 有yield的for循环

  5. 使用by关键字的for循环

1)循环使用范围

在其计数器的值范围内积分的循环用于使用range的循环

语法:

    for(var i <- Range){
		    // 要执行的代码...
    }

这里的范围是一个数字范围。有两种方法可以在for循环中定义范围。

使用to关键字定义范围i到j。

语法:

    for(var i <- a to b){
		    // 预期代码
    }

示例

object MyClass {
      def add(x:Int, y:Int) = x + y;

      def main(args: Array[String]) {
          var i = 0;
          print("Print numbers from 5 to 10\n")
         for(  i <- 5 to 10){
             print(i + "\n")
         }
      }
   }

输出结果

Print numbers from 5 to 10
5
6
7
8
9
10

代码说明:

在上面的代码中,我们使用了to关键字来定义范围。我们已经初始化了循环变量i。考虑到循环,它需要第一个和最后一个值。它将值从5增加到10,并将i的值增加1。循环从5到10运行,并将每个值打印到屏幕上。

使用直到关键字定义范围,从i到j。

语法:

    for(var i <- a until b){
		    // 预期代码
    }

示例

object MyClass {
      def add(x:Int, y:Int) = x + y;

      def main(args: Array[String]) {
          var i = 0;
          print("Print numbers from 5 until 10\n")
         for(  i <- 5 until 10){
             print(i + "\n")
         }
      }
   }

输出结果

Print numbers from 5 until 10
5
6
7
8
9

代码说明:

在上面的代码中,我们使用了直到关键字来定义范围。我们已经初始化了循环变量i。它考虑的是第一个值,而不是循环的最后一个值。它将值从5增加到9,并将i的值增加1。循环从5到9运行,并将每个值打印到屏幕上。

2)for循环与集合

集合是事物的容器。该列表是集合的一种,for循环可通过遍历该列表进行工作。

语法:

    for(var x <- list_name){
		    //要执行的代码
    }

示例

object MyClass {
      def add(x:Int, y:Int) = x + y;

      def main(args: Array[String]) {
          var i = 0;
          val myList = List(1,2,4,6,9);

          print("Print numbers of list\n")
         for(  i <- myList){
             print(i + "\n")
         }
      }
   }

输出结果

Print numbers of list
1
2
4
6
9

代码说明:

该代码初始化一个循环变量i和一个类型列表myList的集合,该列表包含要迭代的变量。for循环逐个遍历数组,并将该值放入循环变量中。循环变量在每次迭代时打印该值。

3)带过滤器的循环

您可以将过滤器添加到for循环的迭代中。这将检查一个可选条件,该条件必须为true才能执行代码。

语法:

    for(var x <- 1 until 15 if condition ){
        //要执行的代码
    }

可以使用多种条件来过滤出for循环结果。

示例

object MyClass {
      def add(x:Int, y:Int) = x + y;

      def main(args: Array[String]) {
          var i = 0;
          print("Print numbers from 5 until 20 which are divisible by 3\n")
         for(  i <- 5 until 20
         if i%3 == 0 ){
             print(i + "\n")
         }
      }
   }

输出结果

Print numbers from 5 until 20 which are divisible by 3
6
9
12
15
18

代码说明:

代码初始化了一个循环变量,该变量将值加1。在执行循环之前,for语句将检查条件。此条件检查循环变量是否可以正确除以3。然后根据该条件执行循环代码块。对于除以3的循环变量的每个值,它都会打印循环变量的值。

4)for yield循环

产率,当我们需要返回计数器变量与数组变量变量被使用。这意味着yield关键字在每次迭代时都返回计数器变量。

语法:

    var forVals = for{var i <- 4 until 35
	    condition
    }yields i

示例

object MyClass {
      def add(x:Int, y:Int) = x + y;

      def main(args: Array[String]) {
          var i = 0;
          print("Print numbers from 11 until 15 using yield\n")
          var forOut = for{ i <- 11 until 15}yield i
             for(i <- forOut){
                 print(i + "\n")
             }
      }
   }

输出结果

Print numbers from 11 until 15 using yield
11
12
13
14

示例说明:

上面的代码详细说明了yield变量的用法。它用于将任何集合过滤出为已过滤的集合。Yield变量将循环计数器的值复制到一个存储其所有值的列表。在此,代码已用于循环以遍历列表并打印从11到15的数字。

5)for循环使用by关键字

by关键字用于增加计数器变量的增量。这意味着,通常计数器将增加1,但使用4将增加4。

语法:

    for(var x <- 1 to 54 by 5){
		    //要执行的代码...
    }

示例

object MyClass {
      def add(x:Int, y:Int) = x + y;

      def main(args: Array[String]) {
          var i = 0;
          print("Print numbers from 11 until 20 increasing interval by 2\n")
         for(  i <- 11 until 20 by 2){
             print(i + "\n")
         }
      }
   }

输出结果

Print numbers from 11 until 20 increasing interval by 2
11
13
15
17
19

代码说明:

代码初始化了一个循环变量,该变量将值加2。by变量用于将计数器增量值增加到特定数字。在本例中,增量值为2。因此,循环每隔11到20输出一次第二个数字。