Sei sulla pagina 1di 20

Prof. MSc.

Joo Vilian

Instrues de Controle Instrues de seleo

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

Oferecem meios de escolher entre diferentes caminhos de execuo em um programa; 3 tipos:


Seleo unidirecional; Seleo bidirecional; Seleo mltipla;

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;

Python: if x == 2: y=3 z=7

if(x == 2){ y = 3; z = 7; }

if x == 2: y=3 z=7

Escolhe entre dois caminhos de execuo de um programa;

Java: if(<expresso>) ... else ... Pascal: if <expresso> then ... else ... Python: if <expresso>: else:

Permitem estruturas de bloco; Ex em Java:

if(x == 2){ y = z + 3; z++; }else{ y = z + 4; z--; }


9

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;

Em Java, o emparelhamento feito sempre com o ultimo if;


11

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

Potrebbero piacerti anche