Estruturas de Controle em Java
Estruturas de Controle em Java
Estruturas de Controle em Java
import java.io.*;
if (expressão lógica)
diretiva1; falso verdadeiro
else condição
diretiva2;
diretiva2 diretiva1
// Calcula a média de um acadêmico e define sua situação:
// aprovado, reprovado ou em exame.
System.out.println();
if (media >= 7.0)
System.out.println(media + ", aprovado.");
else
if (media < 4.0)
System.out.println(media + ", reprovado.");
else
System.out.println(media + ", em exame.");
}
}
Uso “Aninhado” de if else
if (condição1) Neste caso a diretiva1 é executada quando a
if (condição2) condição1 e a condição2 forem verdadeiras,
diretiva1; e a “diretiva2” é executada quando a
else “condição1 for verdadeira e a condição2 for
diretiva2; falsa”.
Isso porque a regra básica é que uma cláusula else sempre pertence à diretiva
if imediatamente anterior. O uso de chaves permite modificar esta regra.
Falso Condição
Execução
Verdadeiro
Incremento/Decremento da
Diretiva(s) variável de controle
Sintaxe e Semântica da Diretiva for
O for tem três seções distintas de controle, todas opcionais, delimitadas por um
par de parênteses, nos quais cada seção é separada de outra por um ponto-e-
vírgula. Após as seções de controle, é declarada a diretiva ou o bloco de
diretivas que será repetido.
}
// 1ª seção = a variável de controle “i” é inicializada com 1
// (int i=1; i<=10; i++)
// 2ª seção = determina o valor final para a variável de controle
“i” // (int i=1; i<=10; i++)
// 3ª seção = determina que o incremento na variável de controle
“i” // será realizado de um em um a cada iteração
// (int i=1; i<=10; i++)
// Em síntese: a variável de controle inicia com o valor 1 vai até
10 // (inclusive) de um em um, ou seja, executando 10 vezes a
diretiva:
// System.out.println(i + " * " + n + " = " + (i*n));
Estruturas de Repetição Condicionais (1/2)
As estruturas de repetição condicionais são as diretivas cujo controle da
repetição de execução é feito por meio da avaliação de uma expressão lógica
associada à diretiva, sendo então chamados de laços condicionais. Essas
estruturas são adequadas para permitir a execução repetida de uma ou mais
diretivas por um número indeterminado de vezes, isto é, um número que não é
conhecido durante a programação, mas que se torna conhecido durante a
execução do programa, tal como um valor fornecido pelo usuário, obtido de um
arquivo, ou ainda de cálculos realizados com outros dados. No Java, tais
estruturas são o while e do while.
while (condição)
diretiva(s);
Condição Verdadeiro
Execução
Diretiva(s)
Falso
// Verifica se um número inteiro é primo.
do
Diretiva(s) diretiva(s);
while (condição);
Condição Verdadeiro
Execução
Falso
Controles de Estruturas de Repetição
As diretivas a seguir podem ser utilizadas para controlar melhor as estruturas de
repetição:
label: diretiva; // onde diretiva deve ser um for, while ou do while
Por meio dessas diretivas, é possível delimitar um trecho de código que será
monitorado automaticamente pela JVM. Ocorrendo algum erro, o fluxo de
execução é “tranferido” para uma “rotina de tratramento de erro”, sendo que tal
transferência pode ser seletiva, isto é, pode-se transferir a execução para rotinas
diferentes, conforme o erro ocorrido.
try {
diretiva normal (ou protegida);
} catch (exceção 1) {
diretiva de tratamento de erro 1;
}[catch (exceção 2) {
diretiva de tratamento de erro 2;
}][finally {
diretiva de execução garantida;
}]
A sintaxe do try catch finally exige que cada bloco try tenha “ao menos um
bloco” catch ou finally.
Exemplo do Tratamento de erros (try catch finally)