Buscar

Aula02 - Rev_Condicional_Repeticao

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 9 páginas

Prévia do material em texto

20/08/2011
1
Comandos Condicionais e de 
Repetição 
Prof. André Backes
Fluxogramas
� Condição ou Decisão
� Representado por losangos
� Normalmente contém uma pergunta do tipo 
Sim/Não ou um teste de Verdadeiro/Falso.
� Mudança no fluxo
A > B?
Sim
Não
Comando if
� Em linguagem C, o comando if é 
utilizado quando for necessário escolher 
entre dois caminhos, ou quando se 
deseja executar um comando sujeito ao 
resultado de um teste. 
Comando if
� A forma geral de um comando if é:
if (condição) {
seqüência de comandos;
}
� A expressão, na condição, será 
avaliada:
� Se ela for zero (falsa), a declaração não 
será executada;
� Se a condição for diferente de zero 
(verdadeira) a declaração será executada.
Exemplo if
#include <stdio.h>
#include <stdlib.h>
int main (){
int num;
printf ("Digite um numero: ");
scanf ("%d",&num);
if(num > 10)
printf ("\n\n O numero e maior que 10");
system(“pause”);
return 0;
}
Exemplo if
int num;
printf ("Digite um numero: ");
scanf ("%d",&num);
if(num > 10)
printf ("\n\n O numero e maior que 10");
system(“pause”);
return 0;
Início
Fim
SIM
NÃO
20/08/2011
2
Condição do if
� A condição pode ser uma expressão 
usando operadores matemáticos, lógicos 
e relacionais
� +,-, *, /, %
� &&, ||
� >, <, >=, <=, ==, !=
� Ex: 
� (!(5==6)&&(5!=6)&&((2>1)||(5<=4)))
Condição do if
� Tabela verdade
Comando if
� Usa-se chaves {} para delimitar o bloco 
de instruções que pertence ao if
if(num > 10){
printf ("\n\n O numero e maior que 10");
}
� As chaves podem ser ignoradas se a 
instrução for única. 
if(num > 10)
printf ("\n\n O numero e maior que 10");
Comando else
� O comando else pode ser entendido 
como sendo um complemento do 
comando if.
� Se o if diz o que fazer quando a condição é 
verdadeiro, o else tratá da condição falsa.
A > B?
if
else
Comando else
� O comando if-else tem a seguinte forma 
geral:
if(condição) {
seqüência de comandos 1;
} else{
seqüência de comandos 2;
}
Comando else
� A expressão da condição será avaliada:
� Se ela for diferente de zero (verdadeiro), a 
seqüência de comandos 1 será executada. 
� Se for zero (falso) a seqüência de 
comandos 2 será executada.
� Note que quando usamos a estrutura if-
else, uma das duas declarações será 
executada.
20/08/2011
3
Exemplo if-else
#include <stdio.h>
#include <stdlib.h>
int main ( )
{
int num;
printf ("Digite um numero: ");
scanf ("%d", &num);
if(num == 10){
printf ("O numero e igual a 10.\n");
} else{
printf ("O numero e diferente de 10.\n");
}
system(“pause”);
return 0;
}
Exemplo if-else
printf ("Digite um numero: ");
scanf ("%d", &num);
if(num == 10){
printf ("O numero e igual a 10.\n");
} 
else{
printf ("O numero e diferente de 10.\n");
}
system(“pause”);
SIMNÃO
Comando if-else
� Como no caso do comando if, as chaves 
podem ser ignoradas se a instrução 
contida no else for única. 
else
printf ("O numero e diferente de 10.\n");
Aninhamento de if
� O if aninhado é simplesmente um if 
dentro da declaração de um outro if 
externo.
� A estrutura if-else-if é apenas uma extensão 
da estrutura if-else.
� O único cuidado que devemos ter é o de 
saber exatamente a qual if um 
determinado else está ligado.
Aninhamento de if
if(condição 1) {
seqüência de comandos 1;
} else if(condição 2) {
seqüência de comandos 2;
}
. . .
else if(condição_n) {
seqüência de comandos n;
} else{
seqüência de comandos default;
}
Exemplo aninhamento
#include <stdio.h>
#include <stdlib.h>
int main (){
int num;
printf ("Digite um numero: ");
scanf ("%d", &num);
if (num == 10){
printf ("O numero e igual a 10.\n");
} else{
if (num > 10)
printf ("O numero e maior que 10.");
else
printf ("O numero e menor que 10.");
}
system(“pause”);
return 0;
}
20/08/2011
4
Exemplo aninhamento
scanf ("%d", &num);
if (num == 10){
printf ("O numero e igual a 10.\n");
} else{
if (num > 10)
printf ("O numero e maior que 10.");
else
printf ("O numero e menor que 10.");}
system(“pause”);
SIM
NÃO
SIM
NÃO
Aninhamento de if
� Observe sempre a correspondência entre if’s 
e else’s
if (cond1)
if (cond2)
comando if2;
else 
comando if1;
if (cond1) {
if (cond2)
comando if2;
} else
comando if1;
Errado
Correto
Expressão Condicional
� Quando o compilador avalia uma 
condição, ele quer um valor de retorno 
para poder tomar a decisão. 
� Esta expressão não necessita ser uma 
expressão no sentido convencional. 
� Uma variável sozinha pode ser uma 
"expressão" e esta retornar o seu próprio 
valor.
Expressão Condicional
� Isto quer dizer que teremos as seguintes 
expressões: 
� int num;
� if (num!=0) 
� if (num==0) 
� equivalem a 
� int num;
� if (num)
� if (!num)
O Operador ?
� Também conhecido como operador 
ternário
� A expressão condicional “? :” é uma 
simplificação do if-else utilizada 
tipicamente para atribuições 
condicionais
O Operador ?
� Uma expressão como
if (a > 0)
b = -150;
else
b = 150;
� pode ser simplificada usando-se o 
operador ? da seguinte maneira:
b = a > 0 ? -150 : 150;
20/08/2011
5
O comando switch
� O comando switch é próprio para se 
testar uma variável em relação a 
diversos valores pré-estabelecidos.
� Parecido com if-else-if, porém não aceitas 
expressões, apenas constantes.
� O switch testa a variável e executa a 
declaração cujo “case” corresponda ao 
valor atual da variável.
O comando switch
switch (var) {
case valor 1:
comandos 1;
break;
case valor k:
comandos k;
break;
default:
comandos default;
break;
}
O comando switch
� O comando switch
� Avalia o valor de var com os valores associados às 
cláusulas case em seqüência;
� Quando o valor associado a uma cláusula é igual 
ao valor do switch os respectivos comandos são 
executados até encontrar um break.
� A declaração default é opcional e será 
executada apenas se a variável que está 
sendo testada não for igual a nenhuma das 
constantes. 
O comando switch
switch( char_in ) {
case '.': printf(“Ponto.\n" ); break;
case ',': printf( ”Virgula.\n" ); break;
case ’:': printf( ”Dois pontos.\n" ); break;
case ’;': printf( ”Ponto e virgula.\n"); break;
default : printf( ”Nao eh pontuacao.\n" );
}
O comando switch
� O comando break
� Faz com que o switch seja interrompido 
assim que uma das seqüência de 
comandos seja executada.
� Não é essencial. Se após a execução da 
declaração não houver um break, o 
programa continuará executando.
� Isto pode ser útil em algumas situações, 
mas tenha cuidado.
O comando switch
switch( num ) {
case ’0’: printf(“0"); /* 0123456789 */
case ‘1’: printf(“1"); /* 123456789 */
case ’2’: printf(“2"); /* 23456789 */
case ’3’: printf(“3"); /* 3456789 */
case ‘4’: printf(“4"); /* 456789 */
case ‘5’: printf(“5"); /* 56789 */
case ’6’: printf(“6"); /* 6789 */
case ’7’: printf(“7"); /* 789 */
case ‘8’: printf(“8"); /* 89 */
case ‘9’: printf(“9"); /* 9 */
break; }
20/08/2011
6
Repetição por Condição
� Relembrando em 
fluxogramas
� Um processo 
pode ser repetido 
até atender ou 
não uma 
condição.
Fim
Leia A e B
Some +1 em A
A < B?
Sim
Não
Imprima A
Comando while
� Repete uma seqüência de comandos 
enquanto sua condição for verdadeira.
� Esse comando possui a seguinte forma 
geral:
while (condição) {
seqüência de comandos;
}
Exemplo while
int a,b;
scanf("%d",&a);
scanf("%d",&b);
while (a < b){
a = a + 1;
printf("%d \n",a);
}
Exemplo while
scanf("%d",&a);
scanf("%d",&b);
while (a < b){
a = a + 1;
printf("%d \n",a);
}
Continuação do 
programa
SIM
NÃO
Comando for
� O loop ou laço for é usado para repetir 
um comando, ou bloco de comandos, 
diversas vezes
� Maior controle sobre o loop. 
� Sua forma geral é
for (inicialização; condição; incremento) {
Seqüência de comandos;
}
Comando for
1. inicialização: iniciar variáveis 
(contador).
2. condição: avalia a condição. Se 
verdadeiro, executa comandos do 
bloco, senão encerra laço.
3. incremento: ao término do bloco de 
comandos, incrementa o valor do 
contador
4. repete o processo até que a condição 
seja falsa.
20/08/2011
7
Comando for
� Comando while:repete uma seqüência 
de comandos enquanto uma condição 
for verdadeira.
� Comando for: repete uma seqüência de 
comandos “N vezes”.
Exemplo for
int a,b,c;
scanf("%d",&a);
scanf("%d",&b);
for (c = a; c <= b; c++){
printf("%d \n",c);
}
Exemplo for
int a,b,c;
scanf("%d",&a);
scanf("%d",&b);
for (c = a; c <= b; c++){
printf("%d \n",c);}
Continuação do 
programa
SIM
NÃO
Comando for
� Podemos omitir qualquer de seus elementos
� inicialização, condição ou incremento.
� Ex.:
int a,b;
scanf("%d",&a);
scanf("%d",&b);
for (; a <= b; a++){
printf("%d \n",a);
}
Comando for
� Cuidado: ao omitir a condição, criamos 
um laço infinito.
� não existindo a condição, ela será 
considerada sempre verdadeira.
for (inicialização; ;incremento) {
seqüência de comandos;
}
Comando for
� Loop sem conteúdo: uma das aplicações 
desta estrutura é gerar tempos de 
espera.
� for (inicialização;condição;incremento);
� Ex.:
� for (i=0; i < 10000000; i++);
� /* Espera 10.000.000 de iterações antes 
de ir para o próximo comando */
20/08/2011
8
Comando do-while
� Comando while: é utilizado para repetir 
um conjunto de comandos zero ou mais 
vezes.
� Comando do-while: é utilizado sempre 
que o bloco de comandos deve ser 
executado ao menos uma vez.
Comando do-while
� executa comandos
� avalia condição:
� se verdadeiro, reexecuta comandos do bloco
� senão encerra laço
� Sua forma geral é
do {
comandos;
} while (condição);
Comando do-while
int i;
do {
printf ("Escolha uma opção:\n");
printf ("(1) Opção 1\n");
printf ("(2) Opção 2\n");
printf ("(3) Opção 3\n");
scanf("%d", &i);
} while ((i < 1) || (i > 3));
printf ("Você escolheu a Opção %d.\n“,i);
Comando do-while
do {
printf ("Escolha uma opção:\n");
printf ("(1) Opção 1\n");
printf ("(2) Opção 2\n");
printf ("(3) Opção 3\n");
scanf("%d", &i);
} while ((i < 1) || (i > 3));
printf ("Você escolheu a Opção %d.\n“,i);
SIM
NÃO
Comando do-while
int i;
do {
printf ("Escolha uma opção:\n");
printf ("(1) Opção 1\n");
printf ("(2) Opção 2\n");
printf ("(3) Opção 3\n");
scanf("%d", &i);
} while ((i < 1) || (i > 3));
printf ("Você escolheu a Opção %d.\n“,i);
Comando break
� Nós já vimos dois usos para o comando 
break: interrompendo os comandos 
switch.
� Ex.:
switch( num ) {
case ’0’: printf(“Zero"); break;
case ‘1’: printf(“Um"); break;
}
20/08/2011
9
Comando break
� Na verdade, o comando break serve 
para quebrar a execução de um 
comando (como no caso do switch) ou 
interromper a execução de qualquer loop 
(for, while ou do-while).
� O break faz com que a execução do 
programa continue na primeira linha 
seguinte ao loop ou bloco que está 
sendo interrompido.
Comando break
int a,b;
scanf("%d",&a);
scanf("%d",&b);
while (a <= b){
if (a == b)
break;
a = a + 1;
printf("%d \n",a);
}
Comando break
while (a <= b){
if (a == b)
break;
a = a + 1;
printf("%d \n",a); }
SIM
NÃO
Continuação do 
programa
SIM
NÃO
Comando continue
� Comando continue
� Diferente do break, só funciona dentro do 
loop;
� Pula essa iteração do loop;
� Os comandos que sucedem continue no 
bloco não são executados
Comando continue
int opcao;
while (opcao != 5){
printf("Escolha uma opcao entre 1 e 5: ");
scanf("%d", &opcao);
if ((opcao > 5) || (opcao < 1))
continue;
printf(“Opcao escolhida: %d”,opcao);
}
Comando continue
while (opcao != 5){
printf("Escolha uma opcao entre 1 e 5: ");
scanf("%d", &opcao);
if ((opcao > 5) || (opcao < 1))
continue;
printf(“Opcao escolhida: %d”,opcao); }
Continuação do 
programa
SIM
NÃO
SIM
NÃO

Continue navegando