3. conceitos básicos de programação 4. desenvolvimento de programas orientados a objetos carla...

28
3. Conceitos Básicos de 3. Conceitos Básicos de Programação Programação 4. Desenvolvimento de Programas 4. Desenvolvimento de Programas Orientados a Objetos Orientados a Objetos Carla Merkle Westphall Carla Merkle Westphall INE-CTC-UFSC INE-CTC-UFSC E-Mail: [email protected] E-Mail: [email protected] URL: http://moodle.inf.ufsc.br URL: http://moodle.inf.ufsc.br INE5402/5603-D (20072) - Programação INE5402/5603-D (20072) - Programação Orientada a Objetos I Orientada a Objetos I

Upload: julio-cesar-bentes-monteiro

Post on 07-Apr-2016

226 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 3. Conceitos Básicos de Programação 4. Desenvolvimento de Programas Orientados a Objetos Carla Merkle Westphall INE-CTC-UFSC E-Mail: carlamw@inf.ufsc.br

3. Conceitos Básicos de 3. Conceitos Básicos de ProgramaçãoProgramação

4. Desenvolvimento de Programas 4. Desenvolvimento de Programas Orientados a ObjetosOrientados a Objetos

Carla Merkle WestphallCarla Merkle WestphallINE-CTC-UFSCINE-CTC-UFSC

E-Mail: [email protected]: [email protected]: http://moodle.inf.ufsc.brURL: http://moodle.inf.ufsc.br

INE5402/5603-D (20072) - Programação INE5402/5603-D (20072) - Programação Orientada a Objetos IOrientada a Objetos I

Page 2: 3. Conceitos Básicos de Programação 4. Desenvolvimento de Programas Orientados a Objetos Carla Merkle Westphall INE-CTC-UFSC E-Mail: carlamw@inf.ufsc.br

2

Tipos ReferênciaTipos Referência• Tipos Referência Tipos Referência

– Todos os demais tipos de Java!– Definidos a partir de declarações de classes

• Quando uma variável em Java é declarada como sendo do tipo de uma classe, esta variável é considerada como sendo do tipo referência

– Declaração e inicialização:• String str = “Entendendo Strings”;• Banco brasil = new Banco (“Brasil”);

– Diferentemente das variáveis de tipos primitivos, que armazenam um valor, variáveis do tipo referência armazenam um ponteiro para um objeto em memória

Page 3: 3. Conceitos Básicos de Programação 4. Desenvolvimento de Programas Orientados a Objetos Carla Merkle Westphall INE-CTC-UFSC E-Mail: carlamw@inf.ufsc.br

3

StringsStrings• StringsStrings

– São seqüências de caracteres delimitados por “”– Representadas por instâncias da classe String (pacotes

java.lang)– Declaração e Inicialização:

• String saudacao = “Bom dia!”;• Variável saudacao conterá um ponteiro (referência) para um

objeto do tipo String que estará em memória e que “armazenará” a informação “Bom dia!”

– Exemplo:String s1 = “string1”;String s2 = “string2”;String s3 = new String(“s1”);

char data[] = { ‘a’, ‘b’, ‘c’ }; String cc = “ab”+ “cde”;

– As strings podem ser concatenadas através do operador +

Page 4: 3. Conceitos Básicos de Programação 4. Desenvolvimento de Programas Orientados a Objetos Carla Merkle Westphall INE-CTC-UFSC E-Mail: carlamw@inf.ufsc.br

4

StringsStrings• Strings: Comparação Strings: Comparação

– Não use o operador == para comparar Strings– O operador == testa referências quando utilizado com

objetos, ou seja, testa se os objetos “apontam” para mesma posição de memória

– Use o método equals() da classe String– Use o método equalsIgnoreCase() da classe String se não

for importante a caixa (maiúsculas ou minúsculas)String nome = “Lisa”;

if(!nome.equals(“Bart”))

If(“Lisa”.equals(nome))

Page 5: 3. Conceitos Básicos de Programação 4. Desenvolvimento de Programas Orientados a Objetos Carla Merkle Westphall INE-CTC-UFSC E-Mail: carlamw@inf.ufsc.br

5

Classe MathClasse Math• Expressões MatemáticasExpressões Matemáticas

– Os métodos da classe Math permitem realizar cálculos comuns necessários em expressões matemáticas.

– Exemplos de chamadas de métodos da classe Math:• Função raiz quadrada: double y = Math.sqrt(10.0);• Função mínimo: double z = Math.min(x,10);

• Os métodos da classe Math são métodos estáticosOs métodos da classe Math são métodos estáticos– não necessitam de objetos da classe para sua chamada– você deve preceder as chamadas dos métodos com o

nome da classe seguido de ponto

Page 6: 3. Conceitos Básicos de Programação 4. Desenvolvimento de Programas Orientados a Objetos Carla Merkle Westphall INE-CTC-UFSC E-Mail: carlamw@inf.ufsc.br

6

Classe MathClasse Math• Chamada de MétodosChamada de Métodos

– Métodos podem ser chamados em declarações de variáveis ou como parâmetros de outros métodos

• float z = Math.sqrt(4.0*x);• System.out.println(Math.sqrt(x+y*f));

• A classe Math possui duas constantes importantes A classe Math possui duas constantes importantes em programas matemáticos: em programas matemáticos: – Math.E = 2.7282818284590452354

// valor base de logaritmos naturais– Math.PI = 3.14159265358979323846

// relação entre a circunferência e o diâmetro de círculos

Page 7: 3. Conceitos Básicos de Programação 4. Desenvolvimento de Programas Orientados a Objetos Carla Merkle Westphall INE-CTC-UFSC E-Mail: carlamw@inf.ufsc.br

7

Método

abs( x )

ceil ( x )

cos( x )

exp( x )

floor( x )

log( x )

max( x, y )

min( x, y )

pow( x, y )

sin( x )

sqrt( x )

tan( x )

Exemplo

pow(2.0, 7.0) é 128.0; pow(9.0,0.5) é 3.0

sin (0.0) é 0.0

sqrt (900.0) é 30.0; sqrt (9.0) é 3.0

tan (0.0) é 0.0tangente trigonométrica de x (x em radianos)

abs(23.7) é 23.7; abs(0.0) é 0.0; abs(-23.7) é 23.7

ceil (9.2) é 10.0; ceil (-9.8) é -9.0;

cos(0.0) é 1.0

exp(1.0) é 2.718281828

floor (9.2) é 9.0; floor (-9.8) é -10.0

log (2.718282) é 1.0; log (7.389056) é 2.0

max( 2.3, 12.7) é 12.7; max(-2.3;-12.7) é -2.3

min( 2.3, 12.7) é 2.3; min(-2.3;-12.7) é -12.7menor valor entre x e y (também em versões para float, int e long)

x elevado à potência y (x y )

seno trigonométrico de x (x em radianos)

raiz quadrada de x

método esponencial e x

arredonda o valor de x para o maior inteiro menor que x

logaritmo natural de x (base e)

maior valor entre x e y (também em versões para float, int e long)

Descriçãovalor absoluto de x (tem versões para

float, int e log)

arredonda o valor de x para o menor inteiro maior que x

co-seno trigonométrico de x (x em radianos)

Classe MathClasse Math

round( x ) round(9.2) é 9.0; round(-9.8) é -10.0arredonda o valor de x inteiro mais próximo

Page 8: 3. Conceitos Básicos de Programação 4. Desenvolvimento de Programas Orientados a Objetos Carla Merkle Westphall INE-CTC-UFSC E-Mail: carlamw@inf.ufsc.br

Importando PacotesImportando Pacotes• Pacotes (Packages)Pacotes (Packages)

– Conjunto de classes relacionadas é chamado de pacote• Grupo de todos os pacotes é conhecido como biblioteca de

classe java ou Java API (Java applications programming interface)

– Scanner está no pacote java.util– Os nomes dos pacotes Java começam com Java (pacotes

do núcleo da linguagem) ou Javax (extensões ao núcleo)

8

Page 9: 3. Conceitos Básicos de Programação 4. Desenvolvimento de Programas Orientados a Objetos Carla Merkle Westphall INE-CTC-UFSC E-Mail: carlamw@inf.ufsc.br

9

Importando PacotesImportando Pacotes• Exemplos de pacotes Java:Exemplos de pacotes Java:

– java.lang: Tipos e funcionalidades básicas da linguagem. Inclui, entre outras, as classes String, Math, Integer e Thread. É importada automaticamente em seus programas Java;

– java.util: classes para tarefas gerais, tais como vetores e string de tokens.

– java.net: recursos de rede (sockets e URLs);– java.io: classes para escrita e leitura em arquivos;– java.awt: componentes gráficos originais da linguagem

(Abstract Window Toolkit); – javax.swing: pacote de extensão aos componentes

gráficos com melhoramentos à biblioteca AWT– java.applet: classes específicas para tratamento de

applets;

Page 10: 3. Conceitos Básicos de Programação 4. Desenvolvimento de Programas Orientados a Objetos Carla Merkle Westphall INE-CTC-UFSC E-Mail: carlamw@inf.ufsc.br

10

Importando PacotesImportando Pacotes• Nome completo de uma classe: nome do pacote + nome da Nome completo de uma classe: nome do pacote + nome da

classeclasse– Ex.: java.lang.String -> nome completo da classe String

• Sentença import:Sentença import:– Permite a utilização de membros de pacotes sem a necessidade

de referenciá-los a partir do seu nome completo– import <nome completo da classe>;

• A importação pode ser de:A importação pode ser de:– Apenas um membro do pacote

• Ex.: import java.util.Scanner;– Todos os membros do pacote

• Ex.: import java.util.*;• Se não forem usadas todas as classes desse pacote, o compilador vai

descobrir quais foram as classes usadas e as importá-las em tempo de compilação

– O pacote java.lang é sempre importado• import java.lang.*;

Page 11: 3. Conceitos Básicos de Programação 4. Desenvolvimento de Programas Orientados a Objetos Carla Merkle Westphall INE-CTC-UFSC E-Mail: carlamw@inf.ufsc.br

11

Leitura do TecladoLeitura do Teclado• Para ler de forma confortável texto do canal de entrada padrãoPara ler de forma confortável texto do canal de entrada padrão

– É preciso criar primeiro um Scanner passando o canal System.in que esta associado ao teclado

• Para cada um dos tipos primitivos há um método Para cada um dos tipos primitivos há um método correspondente com a assinatura nextXxx() que retorne um correspondente com a assinatura nextXxx() que retorne um valor desse tipo. valor desse tipo. – Se a string não puder ser interpretada como sendo deste tipo, é

lançado uma exceção do tipo InputMismatchException. • Exemplos de algumas leituras de tokens: Exemplos de algumas leituras de tokens:

– String aToken = input.next() ; //Lê um token string– int num1 = input.nextInt() ; //Lê um token inteiro – double num2 = input.nextDouble() ; //Lê um token real– String linha = input.nextLine() ; //Lê uma linha

Scanner input = new Scanner(System.in);Scanner input = new Scanner(System.in);

Page 12: 3. Conceitos Básicos de Programação 4. Desenvolvimento de Programas Orientados a Objetos Carla Merkle Westphall INE-CTC-UFSC E-Mail: carlamw@inf.ufsc.br

12

Impressão Formatada dados Impressão Formatada dados formatadosformatados• printfprintf

– Primeiro argumento é a string formatada (texto fixo e especificadores de formato)

– Especificadores de formato começam com (%) e são seguidos por um caractere que representa o tipo de dado

• %s para uma string – System.out.printf( "%s\n%s\n", " Bem vindo", " a Java!" );

• %d para um decimal• %f para um número ponto flutuante

System.out.printf( "A soma eh %d\n", soma ); // apresenta System.out.printf( "A soma eh %d\n", soma ); // apresenta somasoma

Page 13: 3. Conceitos Básicos de Programação 4. Desenvolvimento de Programas Orientados a Objetos Carla Merkle Westphall INE-CTC-UFSC E-Mail: carlamw@inf.ufsc.br

13

Exemplo: SomaExemplo: Soma// Programa de adição que apresenta a soma de dois números.// Programa de adição que apresenta a soma de dois números.import java.util.Scanner; // programa usa a classe Scanner da package java.utilimport java.util.Scanner; // programa usa a classe Scanner da package java.utilpublic class Soma {public class Soma {

// método main inicia a execução da aplicação Java // método main inicia a execução da aplicação Java public static void main( String args[] ) {public static void main( String args[] ) {// cria objeto da classe Scanner para obter entradas do teclado// cria objeto da classe Scanner para obter entradas do teclado

Scanner input = new Scanner( System.in ); Scanner input = new Scanner( System.in ); int numero1; // declara variável: primeiro numero a somar int numero1; // declara variável: primeiro numero a somar int numero2; // declara variável: segundo numero a somar int numero2; // declara variável: segundo numero a somar int soma; // declara variável: soma de numero1 com numero2int soma; // declara variável: soma de numero1 com numero2

System.out.print( "Digite o primeiro inteiro: " ); // promptSystem.out.print( "Digite o primeiro inteiro: " ); // prompt numero1 = input.nextInt(); // lê primeiro número via método nextInt da classe Scanner numero1 = input.nextInt(); // lê primeiro número via método nextInt da classe Scanner System.out.print( "Digite o segundo inteiro: " ); // promptSystem.out.print( "Digite o segundo inteiro: " ); // prompt numero2 = input.nextInt(); // lê segundo numeronumero2 = input.nextInt(); // lê segundo numero soma = numero1 + numero2; // adiciona númerossoma = numero1 + numero2; // adiciona números System.out.printf( "A soma eh %d\n", soma ); // apresenta somaSystem.out.printf( "A soma eh %d\n", soma ); // apresenta soma

} // fim do metodo main} // fim do metodo main} // fim da classe Soma} // fim da classe Soma

Page 14: 3. Conceitos Básicos de Programação 4. Desenvolvimento de Programas Orientados a Objetos Carla Merkle Westphall INE-CTC-UFSC E-Mail: carlamw@inf.ufsc.br

14

ExercíciosExercícios• Exercício 1Exercício 1

– Escreva um programa que calcula a média de três números reais digitados pelo usuário

• Utilize a classe Scanner e printf

Page 15: 3. Conceitos Básicos de Programação 4. Desenvolvimento de Programas Orientados a Objetos Carla Merkle Westphall INE-CTC-UFSC E-Mail: carlamw@inf.ufsc.br

15

Caixa de Dialogo: Caixa de Mensagem Caixa de Dialogo: Caixa de Mensagem • Classe JOptionPane Classe JOptionPane

– Oferece caixas de diálogo pré-empacotadas que permitem aos programas apresentarem janelas contendo mensagens para o usuário

– Faz parte do pacote javax.swing• Pacote que contém várias classes que ajudam o

programador a criar GUIs (Graphical User Interfaces) // Imprime linhas na caixa de dialogo// Imprime linhas na caixa de dialogoimport javax.swing.JOptionPane; // importa classe JOptionPane import javax.swing.JOptionPane; // importa classe JOptionPane public class Dialogo1 { public class Dialogo1 {

public static void main( String args[] ) { public static void main( String args[] ) { // apresenta um dialogo com a mensagem// apresenta um dialogo com a mensagemJOptionPane.showMessageDialog( null, " Bem vindo\na\JOptionPane.showMessageDialog( null, " Bem vindo\na\

nJava" ); nJava" ); } }

} }

Page 16: 3. Conceitos Básicos de Programação 4. Desenvolvimento de Programas Orientados a Objetos Carla Merkle Westphall INE-CTC-UFSC E-Mail: carlamw@inf.ufsc.br

16

Caixa de Dialogo: Caixa de MensagemCaixa de Dialogo: Caixa de Mensagem• Classe JOptionPane Classe JOptionPane

– Método JOptionPane.showMessageDialog • Método estático: não requer a instanciação de um objeto• Argumentos

– Primeiro usado para posicionamento na tela» Null para colocar a caixa no centro da tela do frame default

– Segundo é a String a apresentar

// Imprime linhas na caixa de dialogo// Imprime linhas na caixa de dialogoimport javax.swing.JOptionPane; // importa classe JOptionPane import javax.swing.JOptionPane; // importa classe JOptionPane public class Dialogo1 { public class Dialogo1 {

public static void main( String args[] ) { public static void main( String args[] ) { // apresenta um dialogo com a mensagem// apresenta um dialogo com a mensagemJOptionPane.showMessageDialog( null, " Bem vindo\na\JOptionPane.showMessageDialog( null, " Bem vindo\na\

nJava" ); nJava" ); } }

} }

Page 17: 3. Conceitos Básicos de Programação 4. Desenvolvimento de Programas Orientados a Objetos Carla Merkle Westphall INE-CTC-UFSC E-Mail: carlamw@inf.ufsc.br

17

Caixa de Dialogo: Caixa de MensagemCaixa de Dialogo: Caixa de Mensagem• Classe JOptionPane Classe JOptionPane

– Método JOptionPane.showMessageDialog • Argumentos

– Primeiro usado para posicionamento na tela» Null para colocar a caixa no centro da tela do frame default

– Segundo é a String a apresentar– Terceiro é o título da janela– Quarto é o tipo de mensagem

// Imprime linhas na caixa de dialogo// Imprime linhas na caixa de dialogoimport javax.swing.JOptionPane; // importa classe JOptionPane import javax.swing.JOptionPane; // importa classe JOptionPane public class Dialogo2 { public class Dialogo2 {

public static void main( String args[] ) { public static void main( String args[] ) { // apresenta um dialogo com a mensagem// apresenta um dialogo com a mensagemJOptionPane.showMessageDialog( null, JOptionPane.showMessageDialog( null, ""Bem vindo\na\Bem vindo\na\

nJavanJava"" ,  , ""TituloTitulo"", , JOptionPane.INFORMATION_MESSAGEJOptionPane.INFORMATION_MESSAGE); );

} } } }

Page 18: 3. Conceitos Básicos de Programação 4. Desenvolvimento de Programas Orientados a Objetos Carla Merkle Westphall INE-CTC-UFSC E-Mail: carlamw@inf.ufsc.br

18

Caixa de Dialogo: Digitando textoCaixa de Dialogo: Digitando texto• Classe JOptionPane Classe JOptionPane

– Método JOptionPane.showInputDialog

import javax.swing.JOptionPane; import javax.swing.JOptionPane; public class BoasVindas {public class BoasVindas {

public static void main( String args[] ) { public static void main( String args[] ) { // solicita a digitação do nome// solicita a digitação do nomeString nome = JOptionPane.showInputDialog("Qual é seu String nome = JOptionPane.showInputDialog("Qual é seu

nome?" ); nome?" ); // cria a mensagem // cria a mensagem

String mensagem = String.format("Bem vindo, %s, a String mensagem = String.format("Bem vindo, %s, a Desenvolvimento Desenvolvimento

orientado a objetos!", nome ); orientado a objetos!", nome ); // Apresenta a mensagem de boas vindas // Apresenta a mensagem de boas vindas JOptionPane.showMessageDialog( null, mensagem ); JOptionPane.showMessageDialog( null, mensagem );

}}}}

Page 19: 3. Conceitos Básicos de Programação 4. Desenvolvimento de Programas Orientados a Objetos Carla Merkle Westphall INE-CTC-UFSC E-Mail: carlamw@inf.ufsc.br

19

Caixa de Dialogo: Digitando textoCaixa de Dialogo: Digitando texto• Método showInputDialog()Método showInputDialog()

– Variáveis informadas aos programas Java são sempre Strings que devem ser convertidas.

– Erros de entradas inesperadas (tipos incompatíveis com as conversões) devem ser tratados pelo usuário (veremos como em tratamento de exceções).

import javax.swing.JOptionPane; import javax.swing.JOptionPane; public class EntradaInteiro {public class EntradaInteiro {

public static void main( String args[] ) { public static void main( String args[] ) { // solicita a digitação de um inteiro// solicita a digitação de um inteiroString sInt = JOptionPane.showInputDialog("Digite String sInt = JOptionPane.showInputDialog("Digite

Inteiro?" ); Inteiro?" ); // recupera a informação como um numero inteiro// recupera a informação como um numero inteiro

int numero = int numero = Integer.parseInt( sInt);Integer.parseInt( sInt);}}

}}

Page 20: 3. Conceitos Básicos de Programação 4. Desenvolvimento de Programas Orientados a Objetos Carla Merkle Westphall INE-CTC-UFSC E-Mail: carlamw@inf.ufsc.br

20

ExercíciosExercícios2.2. Modifique o programa de adição de maneira a utilizar Modifique o programa de adição de maneira a utilizar

entradas baseada em diálogos com JOptionPane ao invés entradas baseada em diálogos com JOptionPane ao invés de usar entrada baseada em consolede usar entrada baseada em console

3.3. Escreva uma instrução (ou comentário) para realizar cada Escreva uma instrução (ou comentário) para realizar cada uma das seguintes tarefas: uma das seguintes tarefas: a) Declarar as variáveis x,y e z e resultado como tipo intb) Declarar as variáveis xVal, yVal e zVal como do tipo String

c) Solicitar ao usuário para inserir o 1o valor, ler o valor e armazenar em xVald) Solicitar ao usuário para inserir o 1o valor, ler o valor e armazenar em yVale) Solicitar ao usuário para inserir o 1o valor, ler o valor e armazenar em zValf) Converter xVal em um int e armazenar o resultado na variável xg) Converter yVal em um int e armazenar o resultado na variável yh) Converter zVal em um int e armazenar o resultado na variável zi) Computar o produto dos três inteiros contidos em x,y e z e atribuir o resultado à variável resultadoj) Exibir um diálogo contendo a mensagem “O Produto é” seguindo do valor da variável resultadok) Retornar um valor a partir do programa para indicar que o mesmo foi finalizado com sucesso.

Page 21: 3. Conceitos Básicos de Programação 4. Desenvolvimento de Programas Orientados a Objetos Carla Merkle Westphall INE-CTC-UFSC E-Mail: carlamw@inf.ufsc.br

21

Estrutura de Seleção ifEstrutura de Seleção if• SintaxeSintaxe

if (condição) comando Java; [ou {bloco de comandos Java;}]

• Exemplo: Exemplo: Se a média das notas do aluno for maior ou igual a 6 Imprimir “Aprovado”

if if (media >= 6)(media >= 6) System.out.println(“Aprovado”);System.out.println(“Aprovado”);if if (media >= 6) { (media >= 6) { System.out.print(“O Aluno está”);System.out.print(“O Aluno está”); System.out.println(“Aprovado”);System.out.println(“Aprovado”);}}

Media >=6 Imprimir “Aprovado”

verdadeiro

falso

Page 22: 3. Conceitos Básicos de Programação 4. Desenvolvimento de Programas Orientados a Objetos Carla Merkle Westphall INE-CTC-UFSC E-Mail: carlamw@inf.ufsc.br

22

Estrutura de Seleção ifEstrutura de Seleção if

Igualdade ou operador relacional padrão

Igualdade ou operador relacional J ava

Exemplo Significado

Operadores de Igualdade = == x == y x é igual a y ≠ != x != y x não é igual a y Operadores Relacionais > > x > y x é maior que y < < x < y x é menor que y >= x >= y x é maior ou igual a y <= x <= y x é menor ou igual a y

Page 23: 3. Conceitos Básicos de Programação 4. Desenvolvimento de Programas Orientados a Objetos Carla Merkle Westphall INE-CTC-UFSC E-Mail: carlamw@inf.ufsc.br

23

Operadores LógicosOperadores Lógicos• Operador Condicional AND (&&)Operador Condicional AND (&&)

– Usado para testar se duas condições são verdadeiras

• Operador Condicional OR (||)Operador Condicional OR (||)– Usado para testar se uma das condições são verdadeiras

• Adotam circuito curto Adotam circuito curto – AND: Verifica segundo operando apenas se o primeiro é

verdadeiro– OR: Verifica segundo operando apenas se o primeiro é

falso

if (sexo == MASC) && (idade >= 65)if (sexo == MASC) && (idade >= 65)++homemIdoso;++homemIdoso;

if (media >= 6) || (recuperacao >= 6)if (media >= 6) || (recuperacao >= 6)++numAprovados;++numAprovados;

Page 24: 3. Conceitos Básicos de Programação 4. Desenvolvimento de Programas Orientados a Objetos Carla Merkle Westphall INE-CTC-UFSC E-Mail: carlamw@inf.ufsc.br

24

Operadores BooleanosOperadores Booleanos• AND (&) e OR (|) AND (&) e OR (|)

– Similar aos operadores lógicos, com uma exceção: os operadores lógicos boleanos sempre avaliam os dois operandos

– Útil para evitar efeitos colaterais no circuito curto quando existir modificação de valores de variáveis no segundo operando

• Garante que ++idade >= 60 será avaliado e a idade será incrementada

if (vendido == true) | (++idade >= 60)if (vendido == true) | (++idade >= 60)

Page 25: 3. Conceitos Básicos de Programação 4. Desenvolvimento de Programas Orientados a Objetos Carla Merkle Westphall INE-CTC-UFSC E-Mail: carlamw@inf.ufsc.br

25

Estrutura de Seleção if/elseEstrutura de Seleção if/else• SintaxeSintaxe

if (condição)

comando Java;

[ou {bloco de comandos Java;}]

else

comando Java;

[ou {bloco de comandos Java;}]

System.out.print(“O Aluno está”); System.out.print(“O Aluno está”); if (media >= 6){if (media >= 6){

System.out.println(“ System.out.println(“ Aprovado”);Aprovado”);} // fim do bloco if} // fim do bloco ifelse { else {

System.out.println(“ System.out.println(“ Reprovado”);Reprovado”);

} // fim do bloco else} // fim do bloco else

Media >=6 Imprimir “Aprovado”

verdadeiro

falso

Imprimir “Reprovado”

Page 26: 3. Conceitos Básicos de Programação 4. Desenvolvimento de Programas Orientados a Objetos Carla Merkle Westphall INE-CTC-UFSC E-Mail: carlamw@inf.ufsc.br

26

Estrutura de Seleção if/elseEstrutura de Seleção if/else

• Estrutura aninhadaEstrutura aninhada

Media >=9 A

verdadeiro

falso

Media >=7 B

verdadeiro

falso

Media >=6 C

verdadeiro

D

falso

if (media >= 9)if (media >= 9) System.out.print(“O Conceito é A”); System.out.print(“O Conceito é A”); else if (media >= 7)else if (media >= 7) System.out.print(“O Conceito é B”); System.out.print(“O Conceito é B”); else if (media >= 6)else if (media >= 6) System.out.print(“O Conceito é C”);System.out.print(“O Conceito é C”);elseelse System.out.print(“O Conceito é D”);System.out.print(“O Conceito é D”);

Page 27: 3. Conceitos Básicos de Programação 4. Desenvolvimento de Programas Orientados a Objetos Carla Merkle Westphall INE-CTC-UFSC E-Mail: carlamw@inf.ufsc.br

27

Exemplo: Estrutura if Exemplo: Estrutura if // Compara inteiros usando a estrutura de controle if, operadores relacionais // Compara inteiros usando a estrutura de controle if, operadores relacionais // e operadores de igualdade.// e operadores de igualdade.

import java.util.Scanner; // programa usa a classe Scannerimport java.util.Scanner; // programa usa a classe Scannerpublic class Compara {public class Compara {

// método main inicia a execução do programa Java// método main inicia a execução do programa Javapublic static void main( String args[] ) {public static void main( String args[] ) {// cria objeto Scanner para obter entradas do teclado// cria objeto Scanner para obter entradas do tecladoScanner input = new Scanner( System.in );Scanner input = new Scanner( System.in );int numero1, numero2; // primeiro e segundo numero a compararint numero1, numero2; // primeiro e segundo numero a compararSystem.out.print( "Digite primeiro numero: " ); // promptSystem.out.print( "Digite primeiro numero: " ); // promptnumero1 = input.nextInt(); // lê o primeiro numeronumero1 = input.nextInt(); // lê o primeiro numeroSystem.out.print( "Digite segundo numero: " ); // promptSystem.out.print( "Digite segundo numero: " ); // promptnumero2 = input.nextInt(); // lê o segundo numeronumero2 = input.nextInt(); // lê o segundo numero

Page 28: 3. Conceitos Básicos de Programação 4. Desenvolvimento de Programas Orientados a Objetos Carla Merkle Westphall INE-CTC-UFSC E-Mail: carlamw@inf.ufsc.br

28

ExemploExemploif ( numero1 == numero2 ) if ( numero1 == numero2 ) System.out.printf( "%d == %d\n", numero1, numero2 );System.out.printf( "%d == %d\n", numero1, numero2 );if ( numero1 != numero2 ) if ( numero1 != numero2 ) System.out.printf( "%d != %d\n", numero1, numero2 );System.out.printf( "%d != %d\n", numero1, numero2 );if ( numero1 < numero2 ) if ( numero1 < numero2 ) System.out.printf( "%d < %d\n", numero1, numero2 );System.out.printf( "%d < %d\n", numero1, numero2 );if ( numero1 > numero2 ) if ( numero1 > numero2 ) System.out.printf( "%d > %d\n", numero1, numero2 );System.out.printf( "%d > %d\n", numero1, numero2 );if ( numero1 <= numero2 ) if ( numero1 <= numero2 ) System.out.printf( "%d <= %d\n", numero1, numero2 );System.out.printf( "%d <= %d\n", numero1, numero2 );if ( numero1 >= numero2 ) if ( numero1 >= numero2 ) System.out.printf( "%d >= %d\n", numero1, numero2 );System.out.printf( "%d >= %d\n", numero1, numero2 );} // fim do método main} // fim do método main

} // fim da classe Compara} // fim da classe Compara