• Olá Visitante, se gosta do forum e pretende contribuir com um donativo para auxiliar nos encargos financeiros inerentes ao alojamento desta plataforma, pode encontrar mais informações sobre os várias formas disponíveis para o fazer no seguinte tópico: leia mais... O seu contributo é importante! Obrigado.

Instrução While

Serr@no™

GF Ouro
Membro Inactivo
Entrou
Set 23, 2006
Mensagens
1,690
Gostos Recebidos
0
A sintaxe do while é a seguinte:
while( <teste> )
<instrução>
Para este programa de exemplo, devo fazer uma introdução. O cin.get() que usávamos para esperar por un ENTER, na verdade lê qualquer caracter, e podemos inclusivé fazer char a=cin.get();
Mais, há vários caractéres especiais (dos quais falaremos mais à frente). O que vamos usar no próximo programa é o '\n', que tem a função de mudar de linha.
Fazer cout<<"Olá"<<endl; é o mesmo que fazer cout<<"Olá \n"; Quando o utilizador carrega no ENTER o cin.get() retorna o caractér '\n'.
#include <iostream>
using namespace std;
// programa que pede que o utilizador escreva uma linha de texto e conta os caractéres
int main()
{
unsigned charCount = 0; // inteiro sem sinal, >= 0
cout<<"Introduza uma linha de texto:"<<endl;


while( cin.get() != '\n' ) // enquanto o utilizador não fizer ENTER
++charCount; // conta o caractér


cout<<"\nDigitou "<< charCount <<" caracter"
<< ( charCount != 1 ? "es." : "." ) <<endl;


cin.get();
return 0;
}
Pois, este programa já é mais complicado, mas temos de começar a evoluir...
Ora bem, enquanto a condição de teste dentro do while for true, ou seja, enquanto o utilizador não digitar ENTER, realizar-se-á a instrução charCount.
Exemplo:
Tutorial de c++ <ENTER>
O programa irá ler todos os caractéres até encontrar <ENTER> e por cada caractér que
ler incrementará o charCount.
Compreendo que seja complicado compreender isto, tem de testar o programa e ver como ele funciona, só assim compreenderá.
Depois de contar o número de caractéres aparece um cout um pouco esquesito... Penso que ninguém tem dúvidas que o operador ternário está lá para completar a frase com "." ou com "ers.", consoante o número de caractéres.
No cout, em vez de se estar a fazer
cout<<"Atirei o pau ao gato"<<endl;
cout<<"Mas o gato assustou-se..."<<endl;
Pode-se fazer:
cout<<"Atirei o pau ao gato"<<endl
<<"Mas o gato assustou-se..."<<endl;
Que é o mesmo que
cout<<"Atirei o pau ao gato"<<endl<<"Mas o gato assustou-se..."<<endl;
 

Serr@no™

GF Ouro
Membro Inactivo
Entrou
Set 23, 2006
Mensagens
1,690
Gostos Recebidos
0
Instrução do-while

Na instrução while, primeiro testa-se a condição e somente depois se prosegue com as instruções.
No entanto poderá haver casos em que se queira fazer primeiro a instrução e só depois testar a condição.
#include <iostream>
using namespace std;
// programa que soma números até o utilizador escolher -1
int main()
{
int soma = 0, num=0;
cout<<"Introduza vários números. -1 para acabar"<<endl;


do{
soma += num;
cin>>num;
} while( num != -1 );


cout<<"Soma: "<<soma;
cin.get();
}
Penso que é com exemplos que se aprende, parece-me que é um bom método tentar descobrir o que cada programa faz sozinho! Lembre-se que estar a acompanhar um programa que está explicado e percebê-lo, não tem nada a ver com saber programar! uma coisa é perceber quando explicam, outra é criar as coisas sozinho!
 
Topo