08/06/2009

1 Introdução à linguagem JAVA
Aula 03 – Estruturas de Controle

Introdução à Linguagem JAVA - Prof. André Negreiros FATENE - 2009

Sumário
2

 Introdução às Estruturas de Controle de fluxo
 Estruturas de seleção
 if, if-else, switch
 Estruturas de repetição
 while, do-wilhe, for
 Estruturas de transferência de fluxo
 break, continue, return

Introdução à Linguagem JAVA - Prof. André Negreiros FATENE - 2009

1

08/06/2009

Chegou a hora de tomar uma decisão!
3

 Pediram-me para fazer um programa que dê a
nota dos alunos e parabenize o que foi aprovado
com nota maior que 7 ou escreva um sermão de
15000 linhas caso o mesmo tenha reprovado. Mas
como fazer isso?

Introdução à Linguagem JAVA - Prof. André Negreiros FATENE - 2009

Estrutura de seleção if
4

if ( <condição> )
if ( <condição> ) {
{ <declarações>
<declarações> }
} else
{
<declarações>
}

Avaliar
expressão lógica Avaliar
expressão lógica
[verdadeiro] [falso]
[verdadeiro] [falso]
Executa
bloco “if” Executa Executa
bloco “if” bloco “else”

Introdução à Linguagem JAVA - Prof. André Negreiros FATENE - 2009

2

println(“Vocë está aprovado!”)...out. } Introdução à Linguagem JAVA .2009 Estrutura de seleção if 6  Escreva com clareza:  Uso de chaves  Identação  Encadeamento de condições: if (nota <= y) { if (nota > 4) { System. uma instrução if (x == y) { System.out.Prof.out.out.Prof.println(“x = y”). } . Chaves opcionais para int y = 10.. } } else { System.2009 3 .println(“x != y”). André Negreiros FATENE . } else { System. Introdução à Linguagem JAVA . 08/06/2009 Estrutura de seleção if 5 . André Negreiros FATENE . Parênteses obrigatórios int x = 5..println(“Você fará prova final!”).

i+=5. 08/06/2009 Estrutura de seleção if 7  Blocos de comando: aumenta a abrangência das estruturas de controle Sem Bloco Com Bloco int i = 1. André Negreiros FATENE . int i = 1. i+=5. } // i = 6 // i = 1 Introdução à Linguagem JAVA . i = 3. André Negreiros FATENE .2009 4 .Prof.Prof. if (i == 0) if (i == 0) { i = 3.2009 Estrutura de seleção múltipla 8  E se eu quisesse escolher várias opções?  Com o if eu sempre teria que testar todas as opções  Com switch o código fica mais legível  A performance é melhor pois não preciso testar todas as opções Introdução à Linguagem JAVA .

default: Opcional Opcional <BLOCO DE COMANDOS 3> break. } Introdução à Linguagem JAVA .Prof... Executa bloco Executa bloco associado associado associado Introdução à Linguagem JAVA ..Prof. short ou int switch ( i % 35) { case 0: <BLOCO DE COMANDOS 1> Constant Expression break. 08/06/2009 Estrutura de seleção múltipla 9 switch ( <expressão integral> ) { case <label1>: <declarações> Expressão integral: case <label2>: (char. short. byte. default: <declarações> } Avaliar expressão inteira e achar o label [label 1] [label n] Executa bloco . byte.2009 Estrutura de seleção múltipla 10 char.2009 5 . int) <declarações> . case 5: case 10: case 15: <BLOCO DE COMANDOS 2> break.. André Negreiros FATENE . André Negreiros FATENE .

switch (i) { case 0: System.println(”Case 0”).println(”Case 0”). 08/06/2009 Estrutura de seleção múltipla 11 int i = 0.println(”Case Default”). case 5: case 10: case 15: System.println(”Case Default”). Introdução à Linguagem JAVA . break. 10 ou 15”).println(”Case 5.out.Prof.out.out.out.Prof. break. case 5: case 10: case 15: System. break. break. André Negreiros FATENE .out. 10 ou 15”. 10 ou 15”).2009 6 .println(”Case 5.2009 Estrutura de seleção múltipla 12 int i = 10. } Saída: “Case 5. Introdução à Linguagem JAVA . break. } Saída: “Case 0”. default: System. default: System. André Negreiros FATENE . break. switch (i) { case 0: System.out.

} Saída: “Case 0”.out.out. break. break. 10 ou 15”). } Saída: “Case Default”. André Negreiros FATENE . 10 ou 15”). Introdução à Linguagem JAVA . break.2009 Estrutura de seleção múltipla 14 int i = 0.Prof.2009 7 .println(”Case 0”). break. switch (i) { case 0: System.Prof. Introdução à Linguagem JAVA . case 5: case 10: case 15: System. break.println(”Case 0”).println(”Case 5. case 5: case 10: case 15: System. 08/06/2009 Estrutura de seleção múltipla 13 int i = 1.println(“Case Default”).out. switch (i) { case 0: System.println(”Case 5.out. André Negreiros FATENE .out. default: System.

case 5: case 10: case 15: System. break. break.println(”Case 5.2009 Estrutura de seleção múltipla 16 int i = 15. break. 10 ou 15”. } Saída: Introdução à Linguagem JAVA . break.println(”Case 0”).Prof.out.out. 08/06/2009 Estrutura de seleção múltipla 15 int i = 1.println(“Case 5. André Negreiros FATENE .println(“Case 0”). case 5: case 10: case 15: System. default: System. 10 ou 15”). Introdução à Linguagem JAVA . 10 ou 15”).Prof.out.out.2009 8 . switch (i) { case 0: System. André Negreiros FATENE . } Saída: “Case 5.out. break.println(“Case Default”). switch (i) { case 0: System.

André Negreiros FATENE .Prof. } Saída: “Case 0” “Case Default” “Case 5.out.out. switch (i) { case 0: System. case 5: case 10: case 15: System. 10 ou 15” “Case Default”. 10 ou 15”.println(“Case 0”).out. Introdução à Linguagem JAVA . 10 ou 15”).out. Introdução à Linguagem JAVA . default: System.2009 9 . 10 ou 15”). default: System.println(“Case Default”).println(“Case 0”).println(“Case 5. 08/06/2009 Estrutura de seleção múltipla 17 int i = 0. case 5: case 10: case 15: System. André Negreiros FATENE .out. switch (i) { case 0: System.out.println(“Case Default”).2009 Estrutura de seleção múltipla 18 int i = 0.Prof. } Saída: “Case 0” “Case 5.println(“Case 5.

case 5: case 10: case 15: System.Prof.println(“Case Default”). } Saída: “Case 0” “Case 5.out.println(“Case 5.out.2009 10 . André Negreiros FATENE . 10 ou 15”). switch (i) { case 0: System.println(“Case Default”). switch (i) { case 0: System.Prof. case 5: case 10: case 15: System.out.out. Introdução à Linguagem JAVA . 10 ou 15”.println(“Case 0”).println(“Case 5.out. default: System. 08/06/2009 Estrutura de seleção múltipla 19 int i = 5. } Saída: “Case 5. André Negreiros FATENE . Introdução à Linguagem JAVA .2009 Estrutura de seleção múltipla 20 int i = 0. 10 ou 15”). break.out. 10 ou 15” “Case Default”.println(“Case 0”). default: System.

break.Prof. case 5: case 10: case 15: System.println(“Case 5.out. eu tenho que reescrever as 10 vezes? Introdução à Linguagem JAVA . André Negreiros FATENE . Introdução à Linguagem JAVA . switch (i) { default: System. break. 08/06/2009 Estrutura de seleção múltipla 21 int i = 0.2009 Dúvidas 22  Se eu tiver que repetir um trecho de código 10 vezes. André Negreiros FATENE .out. case 0: System.out.2009 11 .Prof. 10 ou 15”.println(“Case Default”).println(“Case 0”). 10 ou 15”). } Saída: “Case 0” “Case 5.

2009 While 24  A condição do laço é avaliada antes da execução do bloco do laço while ( < EXPRESSÃO > ) { Executa <BLOCO DE COMANDOS> bloco “do-while” } Avaliar [falso] expressão lógica [verdadeiro] Introdução à Linguagem JAVA . 08/06/2009 Estruturas de repetição 23  Existem situações onde se faz necessário repetir o mesmo trecho de código um determinado número de vezes  Existem três tipos diferentes de repetições:  Repetição com teste lógico no início do loop  Repetição com teste lógico no fim do loop  Repetição com uma quantidade iterações definida Introdução à Linguagem JAVA .2009 12 . André Negreiros FATENE .Prof. André Negreiros FATENE .Prof.

n = UtiI.readlnt(). Avaliar [falso] expressão lógica [verdadeiro] Introdução à Linguagem JAVA . s = 0. André Negreiros FATENE . int 1. i = i + 1. i = 1. while (i < = n) { s = s + i. André Negreiros FATENE . Introdução à Linguagem JAVA . n.out.... } System.Prof.2009 13 .Prof. s.2009 Do While 26  A condição do laço é avaliada depois da primeira execução do bloco do laço do { Executa <BLOCO DE COMANDOS> bloco “do-while” } while ( < EXPRESSÃO > ). 08/06/2009 While 25  Exemplo:  Soma de 1 a N .println(s). ..

readlnt(). ..Prof. System.. do { s = s + i.out.  Soma de 1 a N int 1..Prof. André Negreiros FATENE . s. André Negreiros FATENE .2009 14 . 08/06/2009 Do While 27  Exemplo: .println(s). i = i + 1. s = 0.. <CONDIÇÃO> . i = 1. n. } while (i < = n). n = UtiI. onde se sabe antecipadamente o número de iterações a serem realizadas for (<INICIALIZAÇÃO> .2009 For 28  Geralmente é utilizado para laços controlados de repetição. Introdução à Linguagem JAVA . <ATUALIZAÇÃO>) { <BLOCO DE COMANDOS> } Executa Executa expressão inicialização de incremento Avaliar Executa [falso] expressão lógica [verdadeiro] bloco “for” Introdução à Linguagem JAVA .

.. for ( int i = 1. j++) { soma = soma + i + j. j = 2. André Negreiros FATENE .printIn(i). } . for ( int i = 1.Prof.Prof.. Introdução à Linguagem JAVA . int soma = 0. i ++ j ++ ) { soma = soma + i + j. i <= 100.. André Negreiros FATENE .2009 For 30  Exemplo Erro ErrodedeCompilação Compilação Código Errado Código Errado . j = 2... } . System.. int soma = 0. 08/06/2009 For 29  Exemplo .2009 15 .out. i++. Introdução à Linguagem JAVA .. i <= 100.

} . for ( i = 1. i ++ j ++ ) { soma = soma + i + j.) { soma = soma + i.printIn(i). int soma = 0. Introdução à Linguagem JAVA .out. André Negreiros FATENE .. for (...j. i++. i <= 100. Int i. } . System.2009 16 .... j = 2. System.out. Introdução à Linguagem JAVA . int i = 1.Prof. 08/06/2009 For 31  Exemplo Erro de Compilação Erro de Compilação Código Errado Código Errado .. André Negreiros FATENE . int soma = 0.Prof..2009 For 32  Exemplo (Laço infinito) .println(soma)..

i++) { if ( i == 3 ) { continue. avançando para a próxima iteração for (int i=0. André Negreiros FATENE .println( "i = " + i ).Prof. } System. while e do- while)  Serve para interromper prematuramente o fluxo atual. while e do-while).out.out. i++) { if ( i == 3 ) { break. i<5 . } Introdução à Linguagem JAVA . } System. } Introdução à Linguagem JAVA . i<5 . para o bloco mais externo for (int i=0. ou seja.2009 Estruturas de Transferência 34  continue:  Pode ser usado em laços de repetição (for.2009 17 .Prof. 08/06/2009 Estruturas de Transferência 33  break:  Pode ser usado em blocos com rótulo. laços de repetição (for. André Negreiros FATENE .println ( "i = " + i ). if e switch  Serve para transferir o fluxo para fora do contexto corrente.

int x = func(). um tipo de dados Java válido deverá ser representado no método  O método é delimitado por { } Introdução à Linguagem JAVA ... i<5 . return i. ..Prof. i++) { if ( i == 3 ) if ( i == 3 ) return.2009 Estruturas de transferência 36  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() { private int func() { for ( i=0. Introdução à Linguagem JAVA .Prof.. André Negreiros FATENE .2009 18 . i<5 . } calc(). . André Negreiros FATENE . procedimentos e funções são representados por métodos  A diferença está no tipo de retorno:  Se o método não tiver retorno (procedure) será representado com a palavra reservada void  Se houver retorno. } } } return -1. 08/06/2009 Métodos 35  Na linguagem Java. i++) { for ( i=0.

2009 Exercício 01 38  Ler um número e dizer se ele é positivo ou negativo.Prof. André Negreiros FATENE . André Negreiros FATENE . 08/06/2009 37 Exercícios Lista de Exercícios 03 Introdução à Linguagem JAVA . Introdução à Linguagem JAVA .Prof.2009 19 .

Prof.  Altere o programa para ficar recebendo o número dentro de um laço enquanto o número for diferente de 0 (zero). Introdução à Linguagem JAVA . Caso o numero não seja um dos três valores imprima “Valor inválido” Introdução à Linguagem JAVA . 08/06/2009 Exercício 02 39  Crie um programa que receba um valor de 1 a 3 e imprima seu valor por extenso.Prof. André Negreiros FATENE . André Negreiros FATENE .2009 Exercício 03 40  Implemente um programa que recebe um número de 1 a 7 e imprime o dia da semana correspondente.2009 20 .