Академический Документы
Профессиональный Документы
Культура Документы
Junho 2014
O conceito de bloco
Uma expresso seguida de um ponto e virgula chamado de instruo. Veja um exemplo de
instruo:
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 a
serem executadas...
A instruo "if"
A instruo "if" a estrutura de teste mais bsica, ela encontrada em todas as linguagens (com
sintaxes 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 instruo switch
A 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 esta
operao teria sido complicada (mas possvel) com ifs</ ital> aninhados. Sua sintaxe a
seguinte:
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 <ital> switch indicam uma expresso cujo valor testado,
sucessivamente, para cada uma das casas. Quando a expresso testada igual a um dos
seguintes valores seguindo uma casa, a lista de instruo que vem depois, executada. A
palavra-chave break indica a sada da estrutura condicional. A palavra-chave default precede a
lista 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 difcil
de 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 instrues
para 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 }
}
Loops
Os loops so estruturas que executam vrias vezes a mesma srie de instrues at que uma
condio no seja mais realizada...
s vezes, chamamos estas estruturas de instrues repetitivas ou iteraes. A forma mais
comum de fazer um loop criar um contador (uma varivel que se incrementa, ou seja, que
aumenta de 1 a cada volta do loop) e parar o loop quando o contador excede um determinado
valor.
O loop for
A 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 uma
condio que testa se o valor do contador excede um limite) e, finalmente, uma instruo que
incrementa (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<6; i++) {
printf("%d", i);
}
Este loop exibe cinco vezes o valor do i</ ital>, ou seja, 1, 2, 3, 4, 5.
Voc dever sempre verificar se o loop tem uma condio de sada (ou seja, o contador
incrementa corretamente)
Uma instruo <ital> printf(); em seu loop uma boa maneira de verificar, passo a passo, o
valor do contador, exibindo-o!
preciso contar o nmero de vezes que voc deseja executar o loop:
for(i=0;i<10;i++) executa 10 vezes o loop (i de 0 a 9)
for(i=0;i<=10;i++) executa 11 vezes o loop (i de 0 a 10)
for(i=1;i<10;i++) executa 9 vezes o loop (i de 1 a 9)
for(i=1;i<=10;i++) executa 10 vezes o loop (i de 1 a 10)
A instruo while
A instruowhile representa outro meio de executar vrias vezes a mesma srie de instrues.
LA sintaxe desta expresso a seguinte:
while (condio realizada) {
lista de instrues;
}
Esta instruo executa a lista de instrues enquanto (while uma palavra inglesa que
significa enquanto) a condio se realiza.
Como a condio de sada pode ser qualquer estrutura condicional, o risco de loop infinito (loop
cuja condio sempre verdadeira) grande, isto , pode causar uma falha do programa em
curso de execuo
Pulo incondicional
Pode ser necessrio pular um ou mais valores do loop, sem precisar par-lo.
A sintaxe desta expresso " continue" (esta instruo colocada em um loop!), e geralmente
associada a uma estrutura condicional, caso contrrio, as linhas entre esta instruo e o final do
loop seriam obsoletas.
Exemplo: Suponhamos que desejamos imprimir para x indo de 1 a 10 o valor de 1/(x-7); claro
que para x = 7, haver um erro. Felizmente, graas instruo continue possvel tratar este
valor separadamente, e continuar o loop!
x=1;
while (x<=10) {
if (x == 7) {
printf("Diviso por zero !");
continue;
}
a = 1/(x-7);
printf("%f", a);
x++;
}
Havia um erro neste programa ... mas talvez voc no tenha visto:
Quando x for igual a 7, o contador no incrementar mais, ele continuar com o valor 7, voc
deveria ter escrito:
x = 1;
while (x<=10) {
if (x == 7) {
printf("Division par 0");
x++;
continue;
}
a = 1/(x-7);
printf("%f", a);
x++;
}
Parada incondicional
Por outro lado, voc pode querer parar prematuramente o loop, para outra condio almda que
foi especificada no cabealho do loop. A instruo break para um loop (for, ou while). Trata-se,
assim como o continue, para associ-lo a uma estrutura condicional, sem a qual o loop no
daria mais que uma volta!
No exemplo anterior, por exemplo, se ns no soubessemos quando o denominador (x-7) se
anularia (tudo bem... OK ... para equaes mais complicadas, por exemplo), seria possvel
interromper o loop, em caso de cancelamento do denominador, para evitar diviso por zero!