Robson Silva
Robson Silva15/09/2022 08:30
Compartilhe

O que eu vi no capítulo "Conhecendo as estruturas de repetição" do bootcamp da Pottencial?

  • #.NET C#

Este artigo e seu repositório (disponível em: https://www.github.com/rjsilvaoficial/PottencialExerciciosRegulares/tree/master/ConhecendoAsEstruturasDeRepeticao) são dedicados ao capítulo de estruturas de repetição no bootcamp da DIO executado em parceria com a Pottencial.

Durante as explicações sempre certeiras do nosso senior sempre de plantão Leonardo Buta, tivemos a oportunidade de aprender como usar os sempre tão úteis laços de repetição e as peculiaridades presentes em cada um deles...

Não acredito que haja muito o que acrescentar, então passei mais expressar o que entendi do conteúdo passado e algumas percepções adicionais que obtive durante meus testes e que eventualmente podem ser úteis a quem estiver interessado no tema:

Bora pros laços:

1 - for : É interessante aplicá-lo quando fazemos alguma idéia da quantidade de vezes que ele deve ser executado (como por exemplo ao calcular a tabuada).

Ponto interessante sobre esse laço (que em caso de se trabalhar com contadores em outros laços também pode ser aplicado) é que podemos especificar como se dá o incremento do laço

Exemplo:

    public static void CalcularTabuadaUsandoForComSalto()

    {

      Console.WriteLine("Você selecionou tabuada com salto!");

      Console.WriteLine();

      Console.Write("Digite o número do qual deseja saber a tabuada sem multiplicação pelos pares: ");

      int input = int.Parse(Console.ReadLine());

      Console.WriteLine();

      for (int i = 1; i <= 10; i+=2)

      {

        Console.WriteLine($"{input} x {i} = {input * i}");

      }

      Console.ReadKey();

      Console.Clear();

    }

O método acima, gera como saída no console, a tabuada do número inserido, porém ignora os multiplicadores pares.

Um outro jeito de se fazer isso, seria:

    public static void CalcularTabuadaUsandoForComSalto()

    {

      Console.WriteLine("Você selecionou tabuada com salto!");

      Console.WriteLine();

      Console.Write("Digite o número do qual deseja saber a tabuada sem multiplicação pelos pares: ");

      int input = int.Parse(Console.ReadLine());

      Console.WriteLine();

      for (int i = 1; i <= 10; i++)

      {

        if (i % 2 == 0)

        {

          continue;

        }

        Console.WriteLine($"{input} x {i} = {input * i}");

      }

      Console.ReadKey();

      Console.Clear();

    }

O que há de interessante aqui é o if contendo a palavra chave continue, apesar dela não ter sido mencionada no módulo, ela retorna a chamada (o andamento do código) ao laço, sempre que i % 2 == 0 o que vem abaixo é ignorado e o for é chamado sem que o Console.WriteLine() contendo os resultados da multiplicação por número par seja executado.

Mencionei isso aqui, pois constrata e serve para esclarecer um pouco mais a função da palavra chave break, ela literalmente para a execução do laço atual, diferente de continue que apenas ignora o código abaixo dela exclusivamente na iteração atual, para o break não importa qual a iteração onde estamos (e claro isso depende de como está a implementação do código), ela vai tirar você de dentro do laço!

Sobre o for, ainda acho interessante acrescentar com relação a sua atuação sobre arrays e quaisquer espécies de listas enumeráveis...

Enumerações e arrays por padrão, tem seu índice inicial definido como índice 0, ou seja, o primeiro item de um array, não estará em meuArray[1], ele é direcionado para o meuArray[0], então quando formos interagir com eles usando um for, o ideal para uma implementação que acesse todos os itens de um array e os mostre, é algo como:

      for (int i = 0; i < meuArray.Length; i++)

      {

        Console.WriteLine($"{meuArray[i]}");

      }

2 - while : Pessoalmente eu o julgo mais interessante para implementações que não consideram uma quantidade pré-definida de repetições, como ilustrado na aula, ele pode ser uma ótima saída para um menu por exemplo:

    public static void ApresentarInterfaceDeUsuario()

    {

      string opcao;

      bool exibirMenu = true;

      while (exibirMenu)

      {

        Console.Clear();

        Console.WriteLine("Digite a sua opção:");

        Console.WriteLine();

        Console.WriteLine("1 - Cadastrar cliente");

        Console.WriteLine("2 - Buscar cliente");

        Console.WriteLine("3 - Apagar cliente");

        Console.WriteLine("4 - Encerrar");

        opcao = Console.ReadLine();

        switch (opcao)

        {

          case "1":

            Console.WriteLine("Cadastro de cliente");

            Console.ReadKey();

            break;

          case "2":

            Console.WriteLine("Busca de cliente");

            Console.ReadKey();

            break;

          case "3":

            Console.WriteLine("Apaga cliente");

            Console.ReadKey();

            break;

          case "4":

            Console.WriteLine("Encerrar");

            exibirMenu = false;

            //Environment.Exit(0);

            break;

          default:

            Console.WriteLine("Opção inválida");

            Console.ReadKey();

            break;

        }

      }

    }

  }

Aqui, é sempre avaliada a condição antes da primeira execução do laço: se neste caso exibirMenu estivesse false, o menu não seria executado, como ele está true o laço é acessado e a execução do programa permanece nele até que esta condição seja alterada! Molezinha vai?

3 - do while : Esse aqui é uma variação do while, a diferença importante (além da sintaxe é claro) é que ele SEMPRE executará o código entre chaves uma primeira vez, antes de verificar se a execução deve ou não permanecer no laço!

    public static void SomarComDoWhile()

    {

      Console.WriteLine("Você selecionou Somar com do while!");

      Console.WriteLine();

      Console.Write("Digite um número e aperte enter para acrescentar na soma (0 - para ver o resultado)");

      Console.WriteLine();

      int resultado = 0;

      int numeroInputado = 0;

      do

      {

        numeroInputado = Convert.ToInt32(Console.ReadLine());

        resultado += numeroInputado;

      }

      while (numeroInputado != 0);

      Console.WriteLine(resultado);

      Console.ReadKey();

    }

Bom, acho que por enquanto é isso! Se achar que conteúdo acrescentou de alguma forma e quiser deixar aquela recomendação de competência em C# no linkedin vou agradecer muito! Se empacarem e quiserem uma ajuda também, basta chamar! Forte abraço!

linkedin : www.linkedin.com/in/rjsilva-oficial

github: https://github.com/rjsilvaoficial

Compartilhe
Comentários (0)
Leia a seguir