Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Joo Vilian
Instrues que controlam o fluxo de execuo de um programa; Selecionar entre caminhos alternativos;
Provocar execuo repetida de certos conjuntos de instrues;
Nas primeiras linguagens, as instrues de controle eram simples, executavam em cima de apenas uma nica instruo;
Estruturas de bloco permitem a execuo de mais de uma instruo:
Pascal begin end C, C++, Java - { } Python - endentao
Permite ou no a execuo de um trecho de cdigo; C, C++ e Java: if(<expresso>) Pascal if <expresso> then Pyhton if <expresso>:
Caso no seja usado estrutura de bloco, a instruo if ir funcionar apenas para a primeira instruo;
Java: if(x == 2) y = 3; z = 7;
if(x == 2){ y = 3; z = 7; }
if x == 2: y=3 z=7
Java: if(<expresso>) ... else ... Pascal: if <expresso> then ... else ... Python: if <expresso>: else:
Juno de duas ou mais instrues if para simular uma seleo mltipla; Ex em Java: if(media >= 7){ System.out.println(Aprovado); }else if(media >= 4){ System.out.println(Final); }else{ System.out.println(Reprovado); }
10
Emparelhamento da instruo else: Motivao em Java: if(soma == 0) if(cont == 0) resultado = 0; else resultado = 1;
Palavras especiais else-if utilizadas em algumas linguagens para melhorar a legibilidade do cdigo, substituindo a sequencia else-if;
Ada elseif; Python elif;
12
Ex em Python: if x >= 7: print aprovado elif x >= 4: print Final else: print Reprovado
13
Permitem a escolha entre dois ou mais caminhos de execuo; Utiliza expresses ordinais; Inteiro, caractere ou enumerao; Pascal: case expresso of <lista de constantes 1>: <instrues> ... <lista de constantes n>: <instrues> else end
14
C, C++ e Java: switch(<expressao>){ case <constante 1>: <instrues> ... case <constante n>: <instrues> default: <instrues> //opcional }
15
A instruo switch permite o fluxo por mais de um bloco de instruo; Ex: switch(indice){ case 1: case 3: x += 1; soma += x; case 2: case 4: x += 2; soma -= x; }
16
Uso da instruo break para terminar a execuo do bloco de instruo; Ex: switch(indice){ case 1: case 3: x += 1; soma += x; break; case 2: case 4: x += 2; soma -= x; }
17
Ex: swicth (letra){ case a: case e: case i: case o: case u: System.out.println(Vogal); break; default: System.out.println(Consoante); }
18
Ex: Mes x = janeiro; ... switch(x){ case janeiro: System.out.println(1 ms); break; case fevereiro: System.out.println(2 ms); break; case marco: System.out.println(3 ms); break; }
19
Switch mais legvel; Todo switch pode ser substitudo por ifs aninhados; Nem todos os ifs aninhados podem ser substitudos por switch;
Recomendao:
Usar switch quando a expresso for ordinal; Usar Ifs aninhados quando a expresso for relacional ou booleana;
20