A maior rede de estudos do Brasil

como funciona o comando whille em c++?

Algoritmos

ESTÁCIO


2 resposta(s) - Contém resposta de Especialista

User badge image

RD Resoluções Verified user icon

Há mais de um mês

While executa uma comparação com a variável. Se a comparação for verdadeira, ele executa o bloco de instruções ( { } ) ou apenas a próxima linha de código logo abaixo.

Procedemos da seguinte maneira:

WHILE (comparação)

Veja o exemplo abaixo.

01.#include <iostream>

02.#include <cstdlib>

03.using namespace std;

04. 

05.int main (void){

06.int par=0;

07.cout <<"Os numeros pares de 0 a 100 sao:\n\n";

08.while (par<=100)

09.{

10.cout <<par<<"\t";

11.par+=2; //o mesmo que par=par+2

12.}

13.system ("pause");

14.return 0;

15.}

Neste exemplo serão mostrados os números pares entre 0 e 100.

Algumas precauções

O WHILE muitas vezes pode nos pregar peças. Se prestarmos atenção, no exemplo acima inicializamos a variável parem 0, pois quando usamos no while uma variável sem inicializa-la pode causar comportamentos estranhos. E por que isso acontece? É simples. C/C++ não inicializa variáveis automaticamente em 0, ou seja, se você comparar uma variável não inicializada, essa variável pode ser qualquer coisa, ex.: 1557745, -9524778, 1 ou até mesmo 0.

Outro problema comum com o while é o loop infinito. O WHILE, diferentemente de FOR, não incrementa ou decrementa automaticamente uma variável, isso deve estar expressado dentro do bloco de instruções, como podemos ver na linha par+=2. Caso contrário, par sempre seria zero e nunca chegaria a 100 para o loop parar, causando o loop infinito.

O ideal é utilizar o WHILE em um loop definido pelo usuário, que a partir de uma entrada ele termine. Ou seja, enquanto o usuário não fizer determinada ação, o loop continuará a dar voltas. Como no exemplo abaixo.

01.#include <iostream>

02.#include <cstdlib>

03.using namespace std;

04. 

05.int main (void){

06.int nr=1;

07.while (nr!=0) //enquanto nr for diferente de 0

08.{

09.cout <<"Digite um numero (0 para finalizar): ";

10.cin >> nr;

11.cin.ignore ();

12.if (nr>0)

13.cout <<"Este numero e positivo\n";

14.else

15.cout <<"Este numero e negativo\n";

16.}

17.return 0;

18.}

While executa uma comparação com a variável. Se a comparação for verdadeira, ele executa o bloco de instruções ( { } ) ou apenas a próxima linha de código logo abaixo.

Procedemos da seguinte maneira:

WHILE (comparação)

Veja o exemplo abaixo.

01.#include <iostream>

02.#include <cstdlib>

03.using namespace std;

04. 

05.int main (void){

06.int par=0;

07.cout <<"Os numeros pares de 0 a 100 sao:\n\n";

08.while (par<=100)

09.{

10.cout <<par<<"\t";

11.par+=2; //o mesmo que par=par+2

12.}

13.system ("pause");

14.return 0;

15.}

Neste exemplo serão mostrados os números pares entre 0 e 100.

Algumas precauções

O WHILE muitas vezes pode nos pregar peças. Se prestarmos atenção, no exemplo acima inicializamos a variável parem 0, pois quando usamos no while uma variável sem inicializa-la pode causar comportamentos estranhos. E por que isso acontece? É simples. C/C++ não inicializa variáveis automaticamente em 0, ou seja, se você comparar uma variável não inicializada, essa variável pode ser qualquer coisa, ex.: 1557745, -9524778, 1 ou até mesmo 0.

Outro problema comum com o while é o loop infinito. O WHILE, diferentemente de FOR, não incrementa ou decrementa automaticamente uma variável, isso deve estar expressado dentro do bloco de instruções, como podemos ver na linha par+=2. Caso contrário, par sempre seria zero e nunca chegaria a 100 para o loop parar, causando o loop infinito.

O ideal é utilizar o WHILE em um loop definido pelo usuário, que a partir de uma entrada ele termine. Ou seja, enquanto o usuário não fizer determinada ação, o loop continuará a dar voltas. Como no exemplo abaixo.

01.#include <iostream>

02.#include <cstdlib>

03.using namespace std;

04. 

05.int main (void){

06.int nr=1;

07.while (nr!=0) //enquanto nr for diferente de 0

08.{

09.cout <<"Digite um numero (0 para finalizar): ";

10.cin >> nr;

11.cin.ignore ();

12.if (nr>0)

13.cout <<"Este numero e positivo\n";

14.else

15.cout <<"Este numero e negativo\n";

16.}

17.return 0;

18.}

User badge image

washington souza

Há mais de um mês

"While" - Testa uma condição. Se a condição for verdadeira ele executa o bloco, caso contrário ele sai.. 

"Do... While" - Esse é quase a mesma coisa, mas ele testa a condição no final. Ou seja, o bloco será executado pelo menos uma vez, para depois decidir se será executado novamente ou não. 

Exemplo de "While": 

while ( condição ) 


// Bloco 




Exemplo de "Do... While": 

Do 


// Bloco 

} while ( condição ); 

Essa pergunta já foi respondida por um dos nossos especialistas