Executando verificação de segurança...
9

Entenda Laços de Repetição🔁 (SIMPLIFICADO EM C#)

Olá a todos, hoje irei falar sobre laços de repetição, a linguagem de exemplificação será C# então fiquem atentos quanto a diferença da documentação entre as linguagens!

O que são os laços de repetição?

Laços de repetição são determinados comandos dentro de uma linguagem que permitem a iteração ou loop de determinado bloco de códigos.

Devo complementar também que além de representar comandos, este recurso também representa uma lógica, sua utilização segue sempre um raciocinio lógico e apesar de todos os comandos serem capazes de fazer a mesma coisa Repetir Códigos. Existe sim diferença em sua utilização e entre cada comando.

Listando os comandos

Veremos os exemplos aplicados mais abaixo. d====( ̄▽ ̄*)b

    While:

    Cria um looping enquanto uma informação for verdadeira.

    Do While:

    Executa o comando pela primeira vez sem verificar se a informação é verdadeira, então cria um looping enquanto a informação for verdadeira.

    For:

    Executa repetidamente por uma quantidade selecionada de vezes.

    For Each:

    Executa repetidamente por uma quantidade selecionada de vezes iterando dados dentro de uma coleção.

Aplicação Prática

While:


        int x = 10;
        while (x > 0)
        {
            Console.WriteLine("Hello World!");
        }

Então o que esta acontecendo aqui, declaramos um valor de x = 10. Logo dizemos Enquanto (while) a variavel de x for maior que zero (x > 0) execute este comando.

Mas existe um problema com esse loop, X sempre será maior que 0, então essa funcão vai exibir "Hello World!" para sempre na tela.

Para consertarmos esse problema basta cada vez que o loop repetir então subtrairmos 1 de x, até que x não seja maior que 0, como no exemplo abaixo:


        int x = 10;
        while (x > 0)
        {
            Console.WriteLine("Hello World!");
            x --;
        }

Nesse exemplo o programa vai exibir "Hello World!" apenas dez vezes na tela, pois para que x = 10 não seja maior que 0, precisamos subtrair 10 unidades (10 - 10 = 0) e como todos sabemos 0 não pode ser maior que 0, logo a condição while (x > 0) se torna falsa e o comando finaliza sua execução.

Do While:


        int x = 10;
        do
        {
            Console.WriteLine("Hello World!");
        }while (x > 100);

Qual a diferença do (do while) para o (while). Aqui está, estou falando o seguinte, exiba "Hello World!" na tela enquanto x > 100, mas espera ai x = 10 então nada vai acontecer certo.

Você quase acertou se não fosse por uma coisa, o laço (do while) executa o primeiro comando sem verificar a condição, então mesmo que x não seja maior que 100, o programa vai exibir uma vez na tela "Hello World!", e então verificar se a condição é verdadeira, no caso 10 > 100 é falso então o programa finaliza.

For:


        for (int i = 10; i > 0; i--)
        {
            Console.WriteLine("Hello World!");
        }

O que esta acontecendo aqui, declaramos uma variavel dentro do laço (for) e definimos i = 10. Logo criamos uma condição, se a variavel de i for maior que zero (i > 0) e ordenamos que subtraia 1 unidade de i (i--).

Agora definimos o comando que deve acontecer caso a condição que criamos seja verdadeira (i > 0). No caso dizemos que o programa deve exibir "Hellow World!" se a condição for verdadeira

Toda vez que o laço repetir ele vai subtrair 1 unidade da variável de i, até que i não seja maior que zero, ou seja o programa ira exibir "Hello World!" dez vezes afinal (10 - 10 = 0) e como sabemos 0 não pode ser maior que 0 então o programa finaliza.

For Each:


        int [] numeros = { 0, 1, 2, 3, 4, 5, 6 ,7 ,8 , 9, 10};
        foreach (int numero in numeros)
        {
            Console.WriteLine(numero);
        }

O que esta acontecendo aqui, primeiro declaramos uma coleção (este é outro conceito de comando chamado array que posso escrever sobre em outro artigo, apenas precisamos saber que ele é como uma variável com vários valores lá dentro, por isso chamamos de uma coleção).

Então dizemos Para Cada (foreach) Numero (variavel que criamos dentro do laço foreach igual com o for) Em (in) Numeros (a coleçao/array/variável com varios valores que criamos) execute determinada função.

No caso a função é exibir na tela a variavel temporária (numero) que criamos dentro do laço (foreach), assim o laço vai pegar o primeiro valor que é o 0 da nossa coleção e atribuir á variavel (numero) e exibir na tela, o loop recomeça e ela vai pegar o proximo numero da coleção que será 1 e repetir o processo atribuindo esse novo valor á variavel (numero). Até que todos os numeros sejam exibidos, então o programa finaliza.

Conclusão

Como ja sabem estou me aprofundando em programação e conforme eu aprender novos conhecimentos estarei compartilhando aqui com vocês.

Sintam-se livres para corrigir se eu tiver errado em alguma coisa e deixem seus comentários.

Carregando publicação patrocinada...
4

Muito bom.
Uma coisa que eu sempre faço:
Quando eu sei antecipadamente quantas vezes eu vou executar o loop, sempre usarei for.
Quando eu não sei antecipadamente, porque a variável de controle vai mudar de valor usando uma lógica não seguencial ou uma entrada de usuário, eu uso while.

1
2
1
2

Bacana sua explicação e quero complementar com o que seria equivalente em python.

Em python não temos do while e nem for each. O próprio for tem um recurso de for each então tudo é for. Quanto ao do while não tem um equivalente, você teria que criar uma função para não repetir muito código e chama-la antes e dentro do while.

Essa não é a única estrutura faltando no python. A linguagem não possui uma estrutura switch case também.

While

i = 10
while i < 10:
    código(i)

For

for i in range(0,10):
    código(i)

Ou

for i in lista:
    código(i)

Um recurso bacana que vale mencionar são as "list comprehensions". É um jeito de alimentar uma lista com uma estrutura de repetição em uma única linha. Olha o exemplo:

lista = [ i for i in range(0,10) ]

O resultado é uma lista com os números de 0 a 9. Essa sintaxe é bem versátil e funciona com dicionários também. Vale uma publicação por si só.

2

Quando eu estava estudando logica eu estava resolvendo pequenos problemas de lacos em py, acho mais pratico pra treinar, porem pra explicar por causa dessa diferenca entre a sintaxe acho que fica mais dificil de simplificar a um nivel de texto.
Alias otimo complemento e bem lembrado sobre o switch case, vou fazer um artigo sobre condicionais tambem hihi.

2

em Java seria assim:

While

while(condicao){
    codigo
}

do while

do{
    codigo
}while(condicao);

for

for(int x = 0; x<10;x++){
    codigo
}

foreach

int[] a ={1,2,3,4,5,6,7,8,9,10};
for(int numeros: a){
    codigo
} 
-2
1
-1