Você está na página 1de 28

RUS0006 - PROGRAMAÇÃO ORIENTADA A OBJETOS

Estruturas de
Controle de Fluxo
Profa. Elanne Mendes
Na última aula de POO…

● O que é UML
● Quais os diagramas da UML
● Diagrama de Classe em Foco
● Exercícios

2
Na aula de hoje…

● Condicionais
● Iterações
● Transferências no fluxo de execução

3
Condicionais

4
Aula 08 - Estruturas de Controle de Fluxo

Introdução
● Tudo o que fizemos até agora em Java foram sequências de
comandos, onde o fluxo de execução seguia sempre de forma
contínua, ou seja, do início ao fim, executando todos os comandos
na ordem que foram inseridos.

● Será que trabalhando desta forma conseguimos elaborar


qualquer programa?

Profa. Elanne Mendes - UFC Russas - Programação Orientada à Objetos 5


Aula 08 - Estruturas de Controle de Fluxo

Não é preciso muito tempo para perceber que uma


sequência única no fluxo de execução, sem a
utilização de outros caminhos, tornaria impossível a
construção de programas mais completos e
complexos.

Profa. Elanne Mendes - UFC Russas - Programação Orientada à Objetos 6


Aula 08 - Estruturas de Controle de Fluxo

Condicional
● A estrutura de controle condicional é a estrutura mais simples
existente. Ela é utilizada quando é preciso decidir qual caminho o
fluxo de execução deve seguir, de acordo com a análise de uma
condição.
● A estrutura condicional sempre possui:
○ um teste, com uma expressão lógica;
○ uma ação que é realizada quando o resultado do teste é
verdadeiro.
● E também pode ter:
○ uma ação alternativa, que é realizada quando o resultado do
teste é falso.

Profa. Elanne Mendes - UFC Russas - Programação Orientada à Objetos 7


Aula 08 - Estruturas de Controle de Fluxo

Condicional
if ( <condição> ) {
if ( <condição> ) { <ações>
<ações> } else {
<outras ações>
} }

Profa. Elanne Mendes - UFC Russas - Programação Orientada à Objetos 8


Aula 08 - Estruturas de Controle de Fluxo

Operador Ternário
● É um recurso para tomada de decisões com objetivo similar ao
do if-else, entretanto é codificado em apenas uma linha.
● (condição) ? ação 1 : ação 2;
● Ao avaliar a condição, caso ela seja verdadeira, a ação 1,
declarada após o ponto de interrogação (?) será executada;
caso contrário, o programa irá executar a ação 2, declarada
após os dois pontos (:)

IMPORTANTE: esse operador é utilizado para uma estrutura de


decisão simples (iniciar uma variável, retornar um valor ou
integrar um bloco de código), ajudando na legibilidade.

Profa. Elanne Mendes - UFC Russas - Programação Orientada à Objetos 9


Aula 08 - Estruturas de Controle de Fluxo

Operador Ternário: Exemplo Prático


// numeroDias é um valor de 1 a 30
String msg = (numeroDias <= 15) ? “1ª Quinzena” : “2ª Quinzena”;
System.out.println(msg);

String msg = “”;


if (numeroDias <= 15){
msg = “1ª Quinzena”;
}
else {
msg = “2ª Quinzena”;
}
System.out.println(msg);

Profa. Elanne Mendes - UFC Russas - Programação Orientada à Objetos 10


Aula 08 - Estruturas de Controle de Fluxo

Seleção com Switch


switch ( <expressão integral> ) {
case <label1>: <ações1> case
<label2>: <ações2>
...
default: <ações default>
}

Profa. Elanne Mendes - UFC Russas - Programação Orientada à Objetos 11


Aula 08 - Estruturas de Controle de Fluxo

Seleção com Switch: Exemplo


...
switch ( valor ) { case 2:
System.out.print(“(2)”);
case 1:
System.out.print(“(1)”); default:
System.out.print(“(default)”);
case 3:
System.out.print(“(3)” );
}
...

Profa. Elanne Mendes - UFC Russas - Programação Orientada à Objetos 12


Aula 08 - Estruturas de Controle de Fluxo

Seleção com Switch: Exemplo


...
switch ( valor ) { case 2:
System.out.print(“(2)”);
break;
case 1:
System.out.print(“(1)”);
break;
default:
System.out.print(“(default)”);
break;
case 3:
System.out.print(“(3)” );
}
...

Profa. Elanne Mendes - UFC Russas - Programação Orientada à Objetos 13


Iterações

14
Aula 08 - Estruturas de Controle de Fluxo

Introdução
● As estruturas de controle de iteração fazem com que
determinadas ações sejam repetidas até que uma
determinada condição seja satisfeita.

● Em java temos:
○ while
○ do...while
○ for

Profa. Elanne Mendes - UFC Russas - Programação Orientada à Objetos 15


Aula 08 - Estruturas de Controle de Fluxo

Iteração com teste no início: While


● Neste tipo de estrutura a condição de iteração é avaliada antes
da execução do bloco do laço.

while ( <condição> ) {
<bloco do laço>
}

while ((x>y)&& test()) {


facaAlgo();
facaOutraCoisa();
}

Profa. Elanne Mendes - UFC Russas - Programação Orientada à Objetos 16


Aula 08 - Estruturas de Controle de Fluxo

Repetição com teste no final: Do… While

● Neste tipo de estrutura a condição de iteração é avaliada depois


da primeira execução do bloco do laço.

do {
<bloco do laço>
} while ( <condição> );

do {
facaAlgo();
facaOutraCoisa();
} while ((x > y) && test());

Profa. Elanne Mendes - UFC Russas - Programação Orientada à Objetos 17


Aula 08 - Estruturas de Controle de Fluxo

Iteração facilitada: For


● É o laço de repetição onde a inicialização, a expressão para
determinação do passo de iteração e a condição de parada são
definidos em um único local!

for(<inicializações>;<condição>;<expressão inc/dec>){
<bloco do laço>
}

for( int i = 0 ; i < 10 ; i++ ){


facaAlgo();
facaOutraCoisa();
}

Profa. Elanne Mendes - UFC Russas - Programação Orientada à Objetos 18


Estruturas de
Tranferência

19
Aula 08 - Estruturas de Controle de Fluxo

Introdução

● Em java temos três estruturas de transferência:


○ break
○ continue
○ return

Profa. Elanne Mendes - UFC Russas - Programação Orientada à Objetos 20


Aula 08 - Estruturas de Controle de Fluxo

Break

● O break pode ser usado em blocos com rótulos, laços de


repetição e no switch, para transferir o fluxo para fora do
contexto corrente, ou seja, para o bloco mais externo.

for ( i=0; i<5 ; i++) { if (


i == 3 ) {
break;
}
System.out.println( "i = " + i );
}

Profa. Elanne Mendes - UFC Russas - Programação Orientada à Objetos 21


Aula 08 - Estruturas de Controle de Fluxo

O que acontece nesse trecho?

for ( i=0; i<4 ; i++) { if ( i == 2 )


break;
for ( j=0; j<4; j++) { if ( j == 2 )
break;
System.out.println( "j = " + j );
}
System.out.println( "i = " + i );
}

Profa. Elanne Mendes - UFC Russas - Programação Orientada à Objetos 22


Aula 08 - Estruturas de Controle de Fluxo

Continue

● O continue pode ser usado em laços de repetição (for,


while, e do-while), para interromper prematuramente o
fluxo de execução e avançando para a próxima iteração.

for ( i=0; i<5 ; i++) {


if ( i == 3 ) {
continue;
}
System.out.println( "i = " + i );
}

Profa. Elanne Mendes - UFC Russas - Programação Orientada à Objetos 23


Aula 08 - Estruturas de Controle de Fluxo

Return

● O return é usado para parar a execução do método


corrente e transferir o controle para o método que o
chamou.
private void calc() {
for ( i=0; i<5 ; i++) {
if ( i == 3 )
return; private int somar(int a, int b){
} int s = 0;
} s = a + b;
... return s;
calc (); }
...
int x = somar( 3, 4 );

Profa. Elanne Mendes - UFC Russas - Programação Orientada à Objetos 24


Aula 08 - Estruturas de Controle de Fluxo

Exercício 1
● Implemente um programa que recebe um número
de 1 a 7 e imprime o dia da semana correspondente.
Exemplo: 1 🡪 domingo; 6 🡪 sexta.

● Altere o programa anterior para ficar recebendo o


número dentro de um laço enquanto o número for
diferente de 0 (zero).

● Escreva um programa que imprima na tela a soma


dos números ímpares entre 1 e 30 e a multiplicação
dos números pares entre 1 e 30.

Profa. Elanne Mendes - UFC Russas - Programação Orientada à Objetos 25


25
Aula 08 - Estruturas de Controle de Fluxo

Exercício 3
● Mike tem uma coleção de revistas em quadrinho e
resolveu emprestar para seus amigos. Mas para não
perder nenhuma revista, seu pai lhe fez uma aplicação
que cadastra as revistas e controla os empréstimos.
○ Para cada revista cadastram-se o tipo da coleção (Cebolinha, Pato
Donald, Batman, etc), o número da edição, o ano e a caixa onde está
guardada. Cada caixa tem uma cor, uma etiqueta e um número.
○ Para cada empréstimo cadastram-se o amigo que pegou a revista,
qual foi a revista, a data de empréstimo e a data de devolução.
○ Cada criança só pode pegar uma revista por empréstimo.
○ O cadastro do amigo consiste do nome, o nome da mãe, o telefone e
de onde é amigo (prédio ou escola).

Profa. Elanne Mendes - UFC Russas - Programação Orientada à Objetos 26


26
Vamos lá!

● Acessar o AME (https://ame2.russas.ufc.br)


● Entrar na disciplina (Programação Orientada a Objetos (T2 2023.2)
● Chave de acesso: POO2023.2
● Responder ao questionário “[E06] - EXERCÍCIO DE REVISÃO”

Profa. Elanne Mendes - UFC Russas - Programação Orientada à Objetos 27


27
27
Obrigada!
Profa. Elanne Mendes
elanne@ufc.br

28

Você também pode gostar