English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Loop for no Scala

Loop do Scala

O loop for no Scala permite que você escreva uma estrutura de controle de loop que execute uma quantidade específica de vezes.

Sintaxe

No Scala for A sintaxe do loop:

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

Na sintaxe acima,Range Pode ser um intervalo numérico representado por i até j ou i até j。Seta esquerda <- Para atribuir valor à variável x.

Exemplo Online

O exemplo a seguir é um que usa i até j A sintaxe (inclusa j) de exemplo:

objeto Test {
   def main(args: Array[String]) {
      var a = 0;
      // Loop for
      for( a <- 1 to 10){
         println( "Valor de a: " + a );
      }
   }
}

A execução do código acima resulta em:

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

O exemplo a seguir é um que usa i até j A sintaxe (não incluído j) de exemplo:

objeto Test {
   def main(args: Array[String]) {
      var a = 0;
      // Loop for
      for( a <- 1 até 10){
         println( "Valor de a: " + a );
      }
   }
}

A execução do código acima resulta em:

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

No Loop for Você pode usar ponto-e-vírgula (;) para definir várias intervalos, que iterarão todos os valores possíveis do intervalo dado. O exemplo a seguir demonstra um exemplo de loop de dois intervalos:

objeto Test {
   def main(args: Array[String]) {
      var a = 0;
      var b = 0;
      // Loop for
      for( a <- 1 to 3; b <- 1 to 3){
         println( "Valor de a: " + a );
         println( "Valor de b: " + b );
      }
   }
}

A execução do código acima resulta em:

$ scalac Test.scala
$ scala Test
Valor de a: 1
Valor de b: 1
Valor de a: 1
Valor de b: 2
Valor de a: 1
Valor de b: 3
Valor de a: 2
Valor de b: 1
Valor de a: 2
Valor de b: 2
Valor de a: 2
Valor de b: 3
Valor de a: 3
Valor de b: 1
Valor de a: 3
Valor de b: 2
Valor de a: 3
Valor de b: 3

Loop de conjunto for

A sintaxe do loop de conjunto for é a seguinte:

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

Na sintaxe acima, List A variável é um conjunto e o loop for iterará sobre todos os elementos do conjunto.

Exemplo Online

O exemplo a seguir fará o loop sobre um conjunto de números. Usamos List() Para criar conjuntos. Em capítulos futuros, detalharemos conjuntos.

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

      // Loop for
      for( a <- numList ){
         println( "Valor de a: " + a );
      }
   }
}

A execução do código acima resulta em:

$ scalac Test.scala
$ scala Test
valor de a: 1
valor de a: 2
valor de a: 3
valor de a: 4
valor de a: 5
valor de a: 6

Filtro de loop for

O Scala pode usar um ou mais if Para filtrar alguns elementos.

A seguinte é a sintaxe do filtro utilizado no loop for.

for( var x <- List
      se condição1; se condição2...
   {
   statement(s);

Você pode usar ponto e vírgula (;) para adicionar uma ou mais condições de filtragem a uma expressão.

Exemplo Online

A seguir está um exemplo de filtragem no loop for:

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

      // Loop for
      for( a <- numList
           se a != 3; se a < 8 ){
         println( "Valor de a: " + a );
      }
   }
}

A execução do código acima resulta em:

$ scalac Test.scala
$ scala Test
valor de a: 1
valor de a: 2
valor de a: 4
valor de a: 5
valor de a: 6
valor de a: 7

Uso do yield no for

Você pode armazenar o valor retornado do loop for em uma variável. O formato da sintaxe é o seguinte:

var retVal = for{ var x <- List
     se condição1; se condição2...
}yield x

Atenção aos colchetes utilizados para armazenar variáveis e condições,retVal É uma variável, o yield no loop grava o elemento atual, armazenando-o no conjunto e retornando o conjunto no final do loop.

Exemplo Online

O seguinte exemplo demonstra o uso do yield em loops for:

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

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

      // Exibir o valor retornado
      for( a <- retVal){
         println( "Valor de a: " + a );
      }
   }
}

A execução do código acima resulta em:

$ scalac Test.scala
$ scala Test
valor de a: 1
valor de a: 2
valor de a: 4
valor de a: 5
valor de a: 6
valor de a: 7

Loop do Scala