Algoritmo e Estrutura de
Dados I
Aula 8 – Linguagem C - Comandos for,
while e do-while
Márcia Marra
[email protected]
Comando for
• o loop for é usado para repetir um comando,
ou bloco de comandos, diversas vezes, de
maneira que se possa ter um bom controle
sobre o loop.
• Sua forma geral é:
for(inicialização;condição;incremento) declaração;
2
Funcionamento do for
• O loop for é equivalente a fazer:
inicialização;
if (condição)
{
declaração;
incremento;
"Volte para o comando if"
}
3
Primeiro exemplo de utilização do
comando for
#include <stdio.h>
int main ()
{
int count;
for (count=1; count<=100; count++)
printf ("%d ",count);
printf(“\n”);
return(0);
}
4
Execução do primeiro exemplo
5
Segundo exemplo
#include <stdio.h>
int main ()
{
int i, cont;
int tamanhoString = 100;
/* String de ate 99 caracteres */
char string[tamanhoString];
printf("\n\nDigite uma frase: ");
/* Le a string */
fgets(string, tamanhoString, stdin);
printf("\n\nFrase digitada:\n%s", string);
cont = 0;
for (i=0; string[i] != '\0'; i=i+1)
{
if ( string[i] == 'c' )
cont = cont +1;
}
printf("\nNumero de caracteres c = %d\n", cont);
return(0);
}
6
Execução do segundo exemplo
7
Terceiro exemplo
#include <stdio.h>
int main()
{
char letra;
for(letra = 'A' ; letra <= 'Z'; letra =letra+1)
printf("%c ", letra);
printf("\n");
return(0);
}
8
Execução do terceiro exemplo
9
Flexibilidade do comando for
• Temos acesso a inicialização, a condição e ao
incremento:
– Aceitam qualquer expressão desde que ela seja válida
• Alguns exemplos:
for ( count = 1; count < 100 ; count++) { ... }
for (count = 1; count < NUMERO_DE_ELEMENTOS ; count++)
{ ... }
for (count = 1; count < BusqueNumeroDeElementos() ;
count+=2) { ... }
10
Loop infinito
• Em um loop infinito não existe condição de
parada:
– os comandos são executados para sempre, até
que ele seja interrompido com o comando
break;
• Forma geral:
for(inicialização; ;incremento) declaração;
11
Exemplo de loop infinito – dia aniversário
#include <stdio.h>
int main(){
int count;
int valorLido;
int diaAniversario = 01;
printf("Tente acertar a dia do meu aniversario!! \n\nEm que
dia voce acha que eu comemoro o meu aniversario?\n");
for(count=0;;count++){
scanf("%d", &valorLido);
// Testa se o dia eh valido
if ((valorLido < 1) || (valorLido > 31))
printf("\nEste nao eh um dia valido. Tente novamente:");
else {
if (valorLido != diaAniversario) {
printf("\nVoce errou o dia! Tente novamente:\n");
}
else {
printf("\nParabens!! Voce acertou o dia!!\n\n");
break;
}
}
}
return 0;
12
}
Execução do programa com
loop infinito
13
Comando while
• Forma geral:
while (condição) declaração;
• O comando while é equivalente a fazer:
if (condição)
{
declaração;
"Volte para o comando if"
}
14
Exemplo utilizando o while
#include <stdio.h>
int main ()
{
int i = 0;
while ( i < 100)
{
printf(" %d", i);
i++;
}
return(0);
}
15
Segundo comando utilizando while
#include <stdio.h>
int main(){
int count;
int valorLido;
int diaAniversario = 01;
printf("Tente acertar a dia do meu aniversario!!\n\nEm que dia
voce acha que eu comemoro o meu aniversario?\n");
scanf("%d", &valorLido);
while (valorLido != diaAniversario) {
// Testa se o dia eh valido
if ((valorLido < 1) || (valorLido > 31)) {
printf("\nEste nao eh um dia valido. Tente novamente:");
}
else {
printf("\nVoce errou o dia! Tente novamente:\n");
}
scanf("%d", &valorLido);
}
printf("\n\nParabens!! Voce acertou o dia!!\n\n");
return 0;
}
16
Comando while-do
• Forma geral:
do
{
declaração;
} while (condição);
• O comando executa a declaração até que
a condição seja verdadeira.
17
Exemplo utilizando o do-while – menu de frutas
#include <stdio.h>
int main ()
{
int i;
do
{
printf ("\n\nEscolha a fruta pelo numero:\n\n");
printf ("\t(1)...Mamao\n");
printf ("\t(2)...Abacaxi\n");
printf ("\t(3)...Laranja\n\n");
scanf("%d", &i);
} while ((i<1)||(i>3));
switch (i)
{
case 1:
printf ("\t\tVoce escolheu Mamao.\n");
break;
case 2:
printf ("\t\tVoce escolheu Abacaxi.\n");
break;
case 3:
printf ("\t\tVoce escolheu Laranja.\n");
break;
}
return(0);
}
18
Execução do programa com while-do
19
Pratique a estrutura de repetição
• Reescreva o problema de contagem dos
bois utilizando as estruturas de repetição
vistas em sala de aula.
20
Download

Linguagem C – Comandos for, while, do