Laços de Repetição (DO-WHILE)

 

Laços de Repetição (DO-WHILE)

Os laços de repetição são uma parte fundamental da programação, permitindo executar blocos de código repetidamente com base em uma condição. Entre os diferentes tipos de laços disponíveis, o DO-WHILE tem uma característica única que o diferencia de outros laços, como o WHILE e o FOR. Este artigo explora em profundidade o laço DO-WHILE, suas peculiaridades, aplicações, e exemplos práticos.

O que é o DO-WHILE?
O laço DO-WHILE executa um bloco de código enquanto uma condição específica é verdadeira. A principal diferença entre DO-WHILE e WHILE é que o DO-WHILE sempre executa o bloco de código pelo menos uma vez, já que a condição é avaliada depois da execução do laço.

Estrutura básica do DO-WHILE
A sintaxe do DO-WHILE é simples e segue o formato:

 {
// Código a ser executado
} while (condição);

Diferença entre DO-WHILE e WHILE
No laço WHILE, a condição é avaliada antes da execução do bloco, o que significa que, se a condição for falsa desde o início, o bloco nunca será executado. No DO-WHILE, por outro lado, o bloco é executado pelo menos uma vez, independentemente da condição.

Exemplo prático
Vamos demonstrar a diferença entre os dois laços com um exemplo simples que imprime os números de 1 a 10:

Com WHILE:
int i = 1;
while (i <= 10) {
System.out.println(i);
i++;
}
Com DO-WHILE:
int i = 1;
do {
System.out.println(i);
i++;
} while (i <= 10);
Ambos os códigos acima produzem o mesmo resultado. Contudo, se o valor inicial de i fosse 11, o WHILE não executaria nenhuma iteração, enquanto o DO-WHILE executaria o bloco de código uma vez.

Quando usar o DO-WHILE?
O DO-WHILE é ideal para situações em que você deseja que o bloco de código seja executado pelo menos uma vez, independentemente de a condição ser verdadeira ou não.

Tabuleiro de Xadrez com DO-WHILE
Agora que compreendemos o funcionamento do DO-WHILE, vamos criar um exemplo mais avançado: a impressão de um tabuleiro de xadrez. Usaremos dois laços DO-WHILE para gerar o tabuleiro e as posições das peças.

Objetivo
Imprimir um tabuleiro de xadrez 8x8, onde as casas brancas são representadas por B e as pretas por P.
Adicionar as posições iniciais das peças pretas:
T: Torre
C: Cavalo
b: Bispo
r: Rainha
R: Rei
p: Peão

Código para testa java:

public class Main {
public static void main(String[] args) {
int linha = 0, coluna;

System.out.println("Tabuleiro de Xadrez:");

do {
coluna = 0; // Reinicia a contagem das colunas para cada linha
do {
// Verifica se a posição é preta ou branca
if ((linha + coluna) % 2 == 0) {
System.out.print("B "); // Casa branca
} else {
System.out.print("P "); // Casa preta
}
coluna++;
} while (coluna < 8); // Total de 8 colunas
System.out.println();
linha++;
} while (linha < 8); // Total de 8 linhas

System.out.println("\nPosições das peças pretas:");

// Exibe as peças pretas
linha = 0;
do {
coluna = 0;
do {
if (linha == 0) { // Primeira linha: Torre, Cavalo, Bispo, Rainha, Rei, Bispo, Cavalo, Torre
switch (coluna) {
case 0:
case 7:
System.out.print("T "); // Torres
break;
case 1:
case 6:
System.out.print("C "); // Cavalos
break;
case 2:
case 5:
System.out.print("b "); // Bispos
break;
case 3:
System.out.print("r "); // Rainha
break;
case 4:
System.out.print("R "); // Rei
break;
}
} else if (linha == 1) {
System.out.print("p "); // Peões
} else {
System.out.print("- "); // Espaços vazios
}
coluna++;
} while (coluna < 8);
System.out.println();
linha++;
} while (linha < 8);
}
}

Saída do Programa
Tabuleiro de Xadrez:

css
Copiar código
B P B P B P B P
P B P B P B P B
B P B P B P B P
P B P B P B P B
B P B P B P B P
P B P B P B P B
B P B P B P B P
P B P B P B P B

Posições das peças pretas:
css
T C b r R b C T
p p p p p p p p
- - - - - - - -
- - - - - - - -
- - - - - - - -
- - - - - - - -
- - - - - - - -
- - - - - - - -
Conclusão
O laço DO-WHILE é uma ferramenta poderosa para situações onde é garantido que o bloco de código deve ser executado pelo menos uma vez. Com sua aplicação simples e direta, ele é especialmente útil em casos de validação, interação com o usuário, e construção de estruturas repetitivas como o tabuleiro de xadrez mostrado no exemplo. Ao entender suas particularidades e diferenças em relação a outros laços, como o WHILE, é possível escolher a abordagem mais adequada para resolver problemas em programação.

Postar um comentário

Postagem Anterior Próxima Postagem