English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Il ciclo for in Scala ti permette di scrivere una struttura di controllo che esegue un numero specifico di iterazioni.
Nel linguaggio Scala for La sintassi del ciclo:
for( var x <- Range ){ statement(s); }
Nella sintassi sopra,Range può essere un intervallo numerico rappresentato come i to j oppure i until jIl simbolo di freccia destra <- viene utilizzato per assegnare un valore alla variabile x.
Ecco un esempio che utilizza i to j Esempio di sintassi (con j):
object Test {
def main(args: Array[String]) {
var a = 0;
// for 循環
for( a <- 1 to 10){
println( "Value of a: " + a );
}
}
}
執行以上代碼輸出結果為:
$ scalac Test.scala $ scala Test value of a: 1 value of a: 2 valore di a: 3 value of a: 4 value of a: 5 value of a: 6 value of a: 7 valore di a: 8 valore di a: 9 valore di a: 10
Ecco un esempio che utilizza i until j Esempio di sintassi (senza j):
object Test {
def main(args: Array[String]) {
var a = 0;
// for 循環
for( a <- 1 until 10){
println( "Value of a: " + a );
}
}
}
執行以上代碼輸出結果為:
$ scalac Test.scala $ scala Test value of a: 1 value of a: 2 valore di a: 3 value of a: 4 value of a: 5 value of a: 6 value of a: 7 valore di a: 8 valore di a: 9
in Ciclo for Puoi utilizzare il punto e virgola (;) per impostare più intervalli, che itereranno attraverso tutti i valori possibili dell'intervallo. Ecco un esempio di un ciclo for che utilizza due intervalli:
object Test {
def main(args: Array[String]) {
var a = 0;
var b = 0;
// for 循環
for( a <- 1 to 3; b <- 1 to 3){
println( "Value of a: " + a );
println( "Valore di b: " + b );
}
}
}
執行以上代碼輸出結果為:
$ scalac Test.scala $ scala Test Valore di a: 1 Valore di b: 1 Valore di a: 1 Valore di b: 2 Valore di a: 1 Valore di b: 3 Valore di a: 2 Valore di b: 1 Valore di a: 2 Valore di b: 2 Valore di a: 2 Valore di b: 3 Valore di a: 3 Valore di b: 1 Valore di a: 3 Valore di b: 2 Valore di a: 3 Valore di b: 3
La sintassi per il ciclo for su una collezione è la seguente:
for( x <- List ){ statement(s); }
Nella sintassi sopra, List una variabile che è una collezione, e il ciclo for itererà attraverso tutti gli elementi della collezione.
Ecco un esempio che cicla attraverso una collezione di numeri. Utilizziamo List() per creare un insieme. In capitoli successivi esploreremo più a fondo gli insiemi.
object Test {
def main(args: Array[String]) {
var a = 0;
val numList = List(1,2,3,4,5,6);
// for 循環
for( a <- numList ){
println( "Value of a: " + a );
}
}
}
執行以上代碼輸出結果為:
$ scalac Test.scala $ scala Test value of a: 1 value of a: 2 valore di a: 3 value of a: 4 value of a: 5 value of a: 6
Scala può utilizzare una o più if espressioni per filtrare alcuni elementi.
Ecco la sintassi per l'uso di un filtro nel ciclo for:
for( var x <- List if condition1; if condition2... { statement(s);
Puoi utilizzare il punto e virgola (;) per aggiungere una o più condizioni di filtraggio.
Ecco un esempio di filtraggio all'interno del ciclo for:
object Test {
def main(args: Array[String]) {
var a = 0;
val numList = List(1,2,3,4,5,6,7,8,9,10);
// for 循環
for( a <- numList
if a != 3; if a < 8 ){
println( "Value of a: " + a );
}
}
}
執行以上代碼輸出結果為:
$ 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 循環的返回值作為一個變量存儲。語法格式如下:
var retVal = for{ var x <- List if condition1; if condition2... }
注意大括號中用於保存變量和條件,retVal 是變量,循環中的 yield 將當前的元素記錄下來,保存在集合中,循環結束後將返回該集合。
以下示例演示了 for 循環中使用 yield:
object Test {
def main(args: Array[String]) {
var a = 0;
val numList = List(1,2,3,4,5,6,7,8,9,10);
// for 循環
var retVal = for{ a <- numList
if a != 3; if a < 8
}
// 輸出返回值
for( a <- retVal){
println( "Value of a: " + a );
}
}
}
執行以上代碼輸出結果為:
$ 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