2
respostas

Quando a diferença do While pro For?

Além do while usar a variável fora e o for usar as de dentro, quais as outras diferenças deles e onde devemos empregar?

2 respostas

Boa noite, José!

A escolha entre o while() e o for() vai depender muito da aplicação e do programador. Por exemplo, eu prefiro o for() para trabalhar com vetores, pois preciso de uma variável "índice". Contudo, utilizo o while() quando essa variável não é necessária (ou até mesmo inviável o uso). A seguir, vou deixar dois exemplos.

char auxiliar;
int vetor[9];

while (auxiliar != 'a'){
    //Executa um bloco ou linha de código aqui.
}

for(int i = 0; i < 10; i++){
    vetor[i] = i;
}

Olá, So para complementar o que o Yan respondeu.

Em questões de consumo de memória, performance e consumo de recursos no geral, não tem nenhuma diferença.

Para ajudar a vc a decidir qual utilizar pode seguir o seguinte:

Quando vc sabe o valor inicial e final pode ser utilizado o for pois vc sabe quantas vezes vai se repetir, como no exemplo do Yan, vc sabe o tamanho do vetor, pois vc criou ele com um valor fixo, logo o for poderia utilizar este valor para saber quando terminar, exemplo:

    int[] vetor = new int[] { 1, 2, 3, 4, 5 };

    for (int index = 0; index < vetor.Length; ++index) //Utilizando o tamanho do vetor para saber quando parar
    {
        vetor[index] = index;
    }

em muitos casos o for é mais pratico.

Quando vc não sabe ao certo quantas vezes o bloco vai se repetir, ou quando são inúmeras vezes que vai se repetir vc pode usar um while pois ele vai ficar executando infinitamente ate que uma condição seja executada, exemplo:

    bool chovendo = true; //iniciado como true então vai entrar no bloco while

    //para este exemplo não sabemos quanto tempo vai ficar chovendo
    //pode nunca parar de chover por exemplo

    while (chovendo) 
    {
        chovendo = EstaChovendo(); // verifica se esta chovendo e atualiza a variavel para ser verificada novamente na próxima repetição

        //faz alguma coisa
    }

então temos: For pode ser utilizado quando sabemos o valor inicial e final

while pode ser utilizado quando não sabemos o valor final, pode acontecer inúmeras vezes