Upload
fabiano-andrade
View
14
Download
2
Embed Size (px)
DESCRIPTION
LINGUAGEM
Citation preview
Linguagem C - Estruturas condicionaisJunho 2014
O que uma estrutura condicional?Chamamos de estrutura condicional as instrues paratestar se uma condio verdadeira ou no. Estas estruturascondicionais podem ser associados com as estruturas quese repetem, aps o cumprimento da condio, chamamosessas estruturas d estruturas de loop.
O conceito de blocoUma expresso seguida de um ponto e virgula chamado de instruo. Veja um exemplo deinstruo: a++;Quando voc quiser agrupar vrias instrues, voc pode criar o que chamamos de bloco, isto, um conjunto de instrues (seguidas, respectivamente, por pontos e vrgulas) entre chaves{e}. As instrues if, while e for podem, por exemplo, ser seguidas de um bloco de instrues aserem executadas...
A instruo "if"A instruo "if" a estrutura de teste mais bsica, ela encontrada em todas as linguagens (comsintaxes diferentes...). Ela executa uma srie de instrues caso uma condio se realize. A sintaxe desta expresso a seguinte: if (condio realizada) { lista de instrues;
}Observaes:
A condio deve ficar entre parnteses possvel definir vrias condies a serem cumpridas com os operadores EOU (&& e ||)
Por exemplo, a seguinte instruo testa se as duas condies so verdadeiras:if ((condio1)&&(condio2))A seguinte instruo executar as instrues se uma das duas condies for verdadeira:if ((condio1)||(condio2))
Se houver apenas uma instruo, as chaves so desnecessrias ...As instrues localizadas no bloco que segue o else so as instrues que seroexecutadas, caso a, ou as condies, no forem realizadas.
A instruo if ... elseA instruoif em sua forma bsica s testa uma condio ou, na maioria das vezes, gostaramosde poder escolher as instrues a serem executadas em caso do no cumprimento dacondio... A expresso if ... else executa outra srie de instrues, em caso do no cumprimento dacondio.A sintaxe desta expresso a seguinte: if (condio realizada) { lista de instrues}else { outra srie de instrues}
Uma maneira mais rpida de fazer o teste possvel fazer um teste com uma estrutura muito mais leve, graas seguinte estrutura:
(condio) ? instruo se verdadeira : instruo se falsaObservaes:
A condio deve ficar entre parntesesQuando a condio for verdadeira, a Instruo da esquerda ser executadaQuando a condio for falsa, a instruo da direito ser executada
Alm de ser executada, a estrutura ?: retorna o valor resultante da instruo executada.Assim, esta forma forma: frequentemente utilizada como segue:
posio = ((Antes == 1) ? contador+1 : contador-1);
A instruo switchA Instruo switch efetua vrios testes de valores sobre o contedo de uma mesma varivel.Esta conexo condicional simplifica muito o teste de v rios valores de uma varivel, pois estaoperao teria sido complicada (mas possvel) com ifs aninhados. Sua sintaxe aseguinte: switch (varivel) {
casa Valor1 : Lista d instrues;
break;
casa Valor2 : Lista d instrues;
break;
casa Valores... : Lista d instrues;
break;
default:
Lista d instrues;
}
Os parnteses aps a palavra-chave switch indicam uma expresso cujo valor testado,sucessivamente, para cada uma das casas. Quando a expresso testada igual a um dosseguintes valores seguindo uma casa, a lista de instruo que vem depois, executada. Apalavra-chave break indica a sada da estrutura condicional. A palavra-chave default precede alista de instrues, que ser executada se a expresso nunca for igual a um dos valores.
No se esquea de inserir instrues break entre cada teste; esse tipo de esquecimento difcilde ser detectado pois nenhum erro assinalado... Na verdade, ao omitir o break, a execuo continuar nos blocos seguintes!
Alis, este fato tambm pode ser usado criteriosamente, a fim de executar as mesmas instruespara os diferentes valores consecutivos; assim, podemos colocar vrias casas antes do bloco: switch(varivel){casa 1:casa 2:{ instrues executadas para a varivel = 1 ou para a varivel = 2 }break;casa 3:{ instrues executadas para a varivel = 3 apenas }break;default:{ instrues executadas para qualquer outro valor de varivel }}
LoopsOs loops so estruturas que executam vrias vezes a mesma srie de instrues at que umacondio no seja mais realizada... s vezes, chamamos estas estruturas de instrues repetitivas ou iteraes. A forma maiscomum de fazer um loop criar um contador (uma varivel que se incrementa, ou seja, queaumenta de 1 a cada volta do loop) e parar o loop quando o contador excede um determinadovalor.
O loop forA instruofor executa vrias vezes a mesma srie de instrues: um loop! Em sua sintaxe, basta especificar o nome da varivel que serve de contador (e, eventualmente,o seu valor inicial, a condio sobre a varivel pela qual o loop para (basicamente umacondio que testa se o valor do contador excede um limite) e, finalmente, uma instruo queincrementa (ou decrementa) o contador. A sintaxe desta expresso a seguinte: for (contador; condio; modificao do contador) { lista de instrues;}Por exemplo: for (i=1; i
Ele comea em i = 1, verifique se i inferior a 6, e assim por diante, at atingir o valor de i = 6,para o qual a condio no ser realizada, o loop vai se interromper e o programa continuarseu curso.
Voc dever sempre verificar se o loop tem uma condio de sada (ou seja, o contadorincrementa corretamente)Uma instruo printf(); em seu loop uma boa maneira de verificar, passo a passo, ovalor do contador, exibindo-o! preciso contar o nmero de vezes que voc deseja executar o loop:
for(i=0;i