Scala for-Schleife

Scala 循环Scala Schleifen

Die for-Schleife ermöglicht es Ihnen, eine Schleifensteuerungsstruktur zu schreiben, die eine bestimmte Anzahl von Malen ausgeführt wird.


Syntax

In der Sprache Scala ist die Syntax derfor-Schleife:

for( var x <- Range ){
   statement(s);
}

In der obigen Syntax kannRangeein numerischer Bereich sein, der durchi to jdargestellt wird, oderi until j. Der linke Pfeil <- wird verwendet, um der Variablen x einen Wert zuzuweisen.

Beispiel

Das folgende ist ein Beispiel, das diei to j-Syntax verwendet (einschließlich j):

Beispiel

object Test {
   def main(args: Array[String]) {
      var a = 0;
      // for-Schleife
      for( a <- 1 to 10){
         println( "Wert von a: " + a );
      }
   }
}

Die Ausführung des obigen Codes gibt das Ergebnis aus:

$ scalac Test.scala
$ scala Test
value of a: 1
value of a: 2
value of a: 3
value of a: 4
value of a: 5
value of a: 6
value of a: 7
value of a: 8
value of a: 9
value of a: 10

Das folgende ist ein Beispiel, das diei until jSyntax verwendet (ohne j):

Beispiel

object Test {
   def main(args: Array[String]) {
      var a = 0;
      // for-Schleife
      for( a <- 1 until 10){
         println( "Wert von a: " + a );
      }
   }
}

Die Ausführung des obigen Codes gibt das Ergebnis aus:

$ scalac Test.scala
$ scala Test
value of a: 1
value of a: 2
value of a: 3
value of a: 4
value of a: 5
value of a: 6
value of a: 7
value of a: 8
value of a: 9

InIn einer for-Schleife,können Sie Semikolons (;) verwenden, um mehrere Bereiche festzulegen. Sie durchläuft alle möglichen Werte der angegebenen Bereiche. Das folgende Beispiel zeigt eine Schleife mit zwei Bereichen:

Beispiel

object Test {
   def main(args: Array[String]) {
      var a = 0;
      var b = 0;
      // for-Schleife
      for( a <- 1 to 3; b <- 1 to 3){
         println( "Wert von a: " + a );
         "Wert von b: "( "Value of b: " + b );
      }
   }
}

Die Ausführung des obigen Codes gibt das Ergebnis aus:

$ scalac Test.scala
$ scala Test
Value of a: 1
Value of b: 1
Value of a: 1
Value of b: 2
Value of a: 1
Value of b: 3
Value of a: 2
Value of b: 1
Value of a: 2
Value of b: 2
Value of a: 2
Value of b: 3
Value of a: 3
Value of b: 1
Value of a: 3
Value of b: 2
Value of a: 3
Value of b: 3

for-Schleife über Sammlungen

Das folgende ist eine for-Schleife über Sammlungen:

for( x <- List ){
   statement(s);
}

In der obigen Syntax istListeine Sammlung, und die for-Schleife iteriert über alle Elemente der Sammlung.

Beispiel

Das folgende Beispiel durchläuft eine numerische Sammlung. Wir verwendenList(), um die Sammlung zu erstellen. In späteren Kapiteln werden wir Sammlungen im Detail vorstellen.

Beispiel

object Test {
   def main(args: Array[String]) {
      var a = 0;
      val numList = List(1,2,3,4,5,6);

      // for-Schleife
      for( a <- numList ){
         println( "Wert von a: " + a );
      }
   }
}

Die Ausführung des obigen Codes gibt das Ergebnis aus:

$ scalac Test.scala
$ scala Test
value of a: 1
value of a: 2
value of a: 3
value of a: 4
value of a: 5
value of a: 6

Filtern in for-Schleife

Scala kann eine oder mehrereifAnweisungen verwenden, um einige Elemente zu filtern.

Das Folgende ist die Syntax für die Verwendung von Filtern in einer for-Schleife.

for( var x <- List
      if condition1; if condition2...
   ){
   statement(s);
}

Sie können Semikolons (;) verwenden, um eine oder mehrere Filterbedingungen zum Ausdruck hinzuzufügen.

Beispiel

Das Folgende ist ein Beispiel für das Filtern in einer for-Schleife:

Beispiel

object Test {
   def main(args: Array[String]) {
      var a = 0;
      val numList = List(1,2,3,4,5,6,7,8,9,10);

      // for-Schleife
      for( a <- numList
           if a != 3; if a < 8 ){
         println( "Wert von a: " + a );
      }
   }
}

Die Ausführung des obigen Codes gibt das Ergebnis aus:

$ scalac Test.scala
$ scala Test
value of a: 1
value of a: 2
value of a: 4
value of a: 5
value of a: 6
value of a: 7

for mit yield

Sie können den Rückgabewert einer for-Schleife als Variable speichern. Die Syntax lautet wie folgt:

var retVal = for{ var x <- List
     if condition1; if condition2...
}yield x

Beachten Sie, dass die geschweiften Klammern verwendet werden, um Variablen und Bedingungen aufzunehmen,retValist eine Variable. In der Schleife zeichnet yield das aktuelle Element auf, speichert es in einer Sammlung, und nachdem die Schleife beendet ist, wird diese Sammlung zurückgegeben.

Beispiel

Das folgende Beispiel zeigt die Verwendung von yield in einer for-Schleife:

Beispiel

object Test {
   def main(args: Array[String]) {
      var a = 0;
      val numList = List(1,2,3,4,5,6,7,8,9,10);

      // for-Schleife
      var retVal = for{ a <- numList
                        if a != 3; if a < 8
                      }yield a

      // Rückgabewert ausgeben
      for( a <- retVal){
         println( "Wert von a: " + a );
      }
   }
}

Die Ausführung des obigen Codes gibt das Ergebnis aus:

$ scalac Test.scala
$ scala Test
value of a: 1
value of a: 2
value of a: 4
value of a: 5
value of a: 6
value of a: 7

Scala 循环Scala Schleifen

Andere Erweiterungen