CodeGym /Cursos Java /Módulo 1 /Laços em Java

Laços em Java

Módulo 1
Nível 6 , Lição 0
Disponível

1. Laços em nossa vida

Muitas vezes, nossas vidas exigem que executemos as mesmas ações várias vezes. Por exemplo, suponha que eu precise digitalizar um documento com várias páginas. Que repetimos o mesmo procedimento várias vezes:

  • Coloque a primeira página no scanner
  • Pressione o botão de digitalização
  • Coloque a próxima página no scanner

Isso é difícil de fazer manualmente. Seria bom se esse processo pudesse ser de alguma forma automatizado.

Ou considere outro exemplo: digamos que eu queira marcar todos os e-mails não lidos na minha caixa de entrada como spam. Antigamente, eu tinha que selecionar um e-mail de cada vez e marcá-lo como spam.

Mas os programadores são preguiçosos, então eles automatizaram esse processo há muito tempo: agora você simplesmente seleciona qualquer lista de letras e clica em "marcar como spam" e, em seguida, seu cliente de e-mail percorre a lista e move cada e-mail para a pasta de spam.

O que podemos dizer aqui? É super conveniente quando um computador ou programa pode executar centenas ou milhares de operações monótonas com um clique. E agora você aprenderá como fazer isso também.


2. whileloop

A instrução if-else expandiu significativamente nossos recursos de programação, tornando possível escrever programas que executam diferentes ações em diferentes situações. Mas há mais uma coisa que tornará nossos programas muito mais poderosos — loops .

Java tem 4 tipos de loops : while, e . Agora vamos nos aprofundar no primeiro deles.forfor-eachdo-while

Um whileloop é muito simples. Consiste em apenas duas partes: uma condição e um corpo de loop . O corpo do loop é executado continuamente enquanto a condição for true. Em geral, um whileloop se parece com isso:

while (condition)
   statement;
Notação para um whileloop com uma única instrução
while (condition)
{
   block of statements
}
Notação para um whileloop com um bloco de instruções

É muito simples. A instrução ou bloco de instruções é executado continuamente, desde que a condição do loop seja igual a true.

É assim que funciona: primeiro, a condição é verificada. Se for verdadeiro, o corpo do loop é executado (a instrução ou bloco de instruções ). Em seguida, a condição é verificada novamente e o corpo do loop é executado novamente. E assim por diante até que a condição se torne falsa.

Se a condição for sempre verdadeira , o programa nunca parará de ser executado. Ele ficará permanentemente preso no loop.

Se a condição for falsa na primeira vez em que for verificada , o corpo do loop não será executado nem uma vez.


3. Exemplos de loops

Aqui estão alguns exemplos práticos de loops em ação.

Código Explicação
int n = 5;
while (n > 0)
{
   System.out.println(n);
   n--;
}
5 linhas serão exibidas na tela:
5
4
3
2
1
Código Explicação
int  n = 0;
while (n < 10)
{
   System.out.println(n);
   n++;
}
10 linhas serão exibidas na tela:
0
1
...
8
9
Código Explicação
Scanner console = new Scanner(System.in);
while(console.hasNextInt())
{
   int x = console.nextInt();
} 
O programa lê os números do teclado, desde que os números sejam inseridos.
Código Explicação
while (true)
   System.out.println("C");
O programa imprimirá infinitamente a carta Cna tela.
Código Explicação
Scanner console = new Scanner(System.in);
boolean isExit = false;
while (!isExit)
{
   String s = console.nextLine();
   isExit = s.equals("exit");
}
O programa lerá as linhas do teclado

até que exitseja inserido.

No exemplo anterior, o equals()método é usado para comparar strings. Se as strings forem iguais, a função retornará true. Se as strings não forem iguais, ele retornará false.



4. Loop dentro de um loop

Ao aprender sobre instruções condicionais, você viu que pode usá-las para implementar lógica complexa combinando várias instruções condicionais. Em outras palavras, usando uma ifinstrução dentro de uma ifinstrução.

Você pode fazer a mesma coisa com loops. Para escrever um loop dentro de um loop, você precisa escrever o segundo loop dentro do corpo do primeiro loop. Vai parecer algo assim:

while (condition for outer loop)
{
   while (condition for inner loop)
   {
     block of statements
   }
}
whileloop (com um bloco de instruções ) dentro de outro whileloop

Vejamos três tarefas.

Tarefa 1 . Digamos que queremos escrever um programa que exiba a palavra Momna tela 4 vezes. Um loop é exatamente o que precisamos. E nosso código ficará mais ou menos assim:

Código Explicação
int  n = 0;
while (n < 4)
{
   System.out.println("Mom");
   n++;
}
4 linhas serão exibidas na tela:
Mom
Mom
Mom
Mom

Tarefa 2 . Queremos escrever um programa que exiba 5 letras As em uma única linha. Para fazer isso, precisamos de um loop novamente. É assim que o código ficará:

Código Explicação
int n = 0;
while (n < 5)
{
   System.out.print("A");
   n++;
}
Em vez de println(), usaremos print(). Caso contrário, cada letra A terminaria em uma linha separada.

A saída da tela será:
AAAAA

Tarefa 3 . Queremos exibir um retângulo composto pela letra As. O retângulo deve consistir em 4 linhas por 5 colunas. Para fazer isso, agora precisamos de um loop aninhado. Simplesmente pegaremos nosso primeiro exemplo (aquele em que exibimos 4 linhas) e substituiremos o código de saída de uma linha pelo código do segundo exemplo.

Código Explicação
int n = 0;

while (n < 4) { int m = 0;
while (m < 5) { System.out.print("A"); m++; }
System.out.println(); n++; }
 
O loop externo é roxo. Ele usa a nvariável para contar o número de iterações do loop.

O loop interno é verde. Ele usa a mvariável para contar o número de iterações do loop.

Temos que mover explicitamente o cursor para a próxima linha após a conclusão do loop interno. Caso contrário, todas as letras que o programa imprime terminarão em uma linha.

A saída da tela será:
AAAAA
AAAAA
AAAAA
AAAAA

Os loops externos e internos devem usar variáveis ​​diferentes para contar o número de iterações do loop. Também tivemos que adicionar o System.out.println()comando após o loop interno, pois esse loop exibe a letra As na mesma linha. Depois que as letras em uma linha são exibidas, alguém precisa mover o cursor para uma nova linha.



5. Comparando loops Java vs Pascal

Muitos de vocês estudaram Pascal no ensino médio. Para facilitar a compreensão do material aqui, dê uma olhada nesta comparação de whileloops escritos em Pascal e Java. Se você não conhece Pascal, pule esta parte.

Pascal Java
i := 3;
While i >= 0 Do
   Begin
      WriteLn(i);
      i := i - 1;
   End;
int i = 3;
while (i >= 0)
{
   System.out.println(i);
   i--;
}
i := 0;
While i < 3 Do
   Begin
      WriteLn(i);
      i := i + 1;
   End;
int i = 0;
while (i < 3)
{
   System.out.println(i);
   i++;
}
IsExit := False;
While Not isExit Do
   Begin
      ReadLn(s);
      isExit :=  (s = 'exit');
   End;
boolean isExit = false;
while (!isExit)
{
   String s = console.nextLine();
   isExit = s.equals("exit");
}
While True Do
   WriteLn('C');
while (true)
   System.out.println("C");
While True Do
   Begin
     ReadLn(s);
     If s = 'exit' Then
       Break;
   End;
while (true)
{
   String s = console.nextLine();
   if (s.equals("exit"))
     break;
}

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION