Scala for-Schleife
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
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
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
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
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
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
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: 7Andere Erweiterungen
Scala Schleifen