Chapter 2 – Introdução à aplicações Java Conteúdo 2.1 2.2 Introdução Um programa Simples : Escrevendo uma linha de texto 2.3 Modificando o primeiro exemplo 2.4 2.5 2.6 Mostrando texto em uma caixa de diálogo Outra aplicação em Java: adicionando inteiros Conceitos de memória 2.7 2.8 Aritmética Comandos de decisão 1 2 2.1 Introdução • Veremos – Introdução de exemplos para ilustrar as características da linguagem Java – Dois estilos de programas: aplicações e applets 3 2.2 Um programa simples: Escrevendo uma linha de texto • Aplicação – Progama que executa usando o interpretador java • Programa exemplo – Veremos o primeiro programa a seguir e depois analisaremos cada linha de código 4 1 2 3 4 5 6 7 8 9 10 11 12 13 Resumo // Fig. 2.1: Welcome1.java // Programa para imprimir um texto. public class Welcome1 { Welcome1.java // metodo principal inicia execucao de uma aplicacao java public static void main( String args[] ) { System.out.println( "Welcome to Java Programming!" ); } // final do metodo main } // final da classe Welcome1 Welcome to Java Programming! Saída do programa Note que os números de linha não são parte do programa e só foram adicionados para referência 5 2.2 Um programa simples: Escrevendo uma linha de texto 1 // Fig. 2.1: Welcome1.java – Comentários iniciam com: // • Comentários são ignorados durante a compilação • Importantes para a documentação e descrição do código • Ajudam no entendimento do código – Comentários tradicionais : /* mesmo de C e C++ */ /* Este e um comentario tradicional. Ele pode ser quebrado em varias linhas */ 2 // Programa para imprimir um texto. – Outro comentário 6 2.2 Um programa simples: Escrevendo uma linha de texto 3 – Linha em branco • Tornam os programas mais fáceis de serem lidos • Linhas em branco, espaços, tabulações são caracteres de espaço em branco – São todos ignorados pelo compilador 4 public class Welcome1 { – Inicia a declaração da classe Welcome1 • Todo programa Java possui pelo menos uma classe definida pelo usuário. • Palavras reservadas: palavras reservadas para uso de Java – Class palavra reservada seguida pelo nome da classe • Nomeando Classes: Inicie sempre com uma letra Maiúscula – SampleClassName 7 2.2 Um programa simples: Escrevendo uma linha de texto 4 public class Welcome1 { – O nome de uma classe é chamado de identificador da classe • Um identificador é uma série de caracteres consistindo de letras, dígitos, underline e cifrão ($) • Não pode iniciar com um dígito e não pode possuir espaços. • Exemplos: Welcome1, $value, _value, button7 – 7button é inválido • Java é sensitiva à maiúsculas e minúsculas (case sensitive) – a1 e A1 são diferentes – Por enquanto vamos usar a palavra reservada public • Entraremos nos detalhes depois. 8 2.2 Um programa simples: Escrevendo uma linha de texto 4 public class Welcome1 { – Salvando arquivos • O nome do arquivo deve ser o mesmo nome do identificador da classe e terminar com extensão .java • Welcome1.java – Parênteses esquerdo { • Inicia o corpo de toda classe • Parênteses direito termina as declarações (linha 13) 7 public static void main( String args[] ) – Parte de toda aplicação Java • Aplicações iniciam executando do método main – Parênteses indicam que main é um método – Aplicações Java contém um ou mais métodos 9 2.2 Um programa simples: Escrevendo uma linha de texto 7 public static void main( String args[] ) • Exatamente um método precisa ser chamado main – Os métodos podem realizar tarefas e retornar informações • void significa que main não retorna nenhuma informação. • Void possui o mesmo significado de C e C++ • A partir de agora, chamaremos primeira linha de main 8 { – Parêntese direito inicia o corpo da declarações de comandos do método • Finalizada pelo parênteses direito } (linha 11) 10 2.2 Um programa simples: Escrevendo uma linha de texto 9 System.out.println( "Welcome to Java Programming!" ); – Instrui o computador a realizar uma ação • Imprime uma string de caractres – String – uma série de caracteres dentro de duas aspas. • Espaços em branco dentro de strings não são ignorados pelo compilador – System.out • Objeto de saída padrão • Imprime na linha de comandos (i.e., MS-DOS prompt, linux promt...) – Método System.out.println • Exibe uma linha de texto • O argumento do método é passado entre parênteses – Esta linha é conhecida como instrução • Instruções precisam terminar com um ; 11 2.2 Um programa simples: Escrevendo uma linha de texto 11 } // final do metodo main – Finaliza a declaração do método 13 } // final da classe Welcome1 – Termina a declaração de classe – Pode-se adicionar comentários para controlar os fecha parênteses. 12 2.2 Um programa simples: Escrevendo uma linha de texto • Compilando um programa – Abra uma janela de comandos no seu sistema operacional, e vá para o diretório onde o programa está armazenado – Digite: javac Welcome1.java – Se nenhum erro ocorrer, será criado um arquivo Welcome1.class • Este arquivo contém os bytecodes que representam a aplicação. • Esses bytecodes serão interpretados pelo interpretador java 13 2.2 Um programa simples: Escrevendo uma linha de texto • Executando um programa – Digite na linha de comando: java Welcome1 • O interpretador java carrega o arquivo .class da classe Welcome1 • A extensão.class é omitida no comando – O interpretador irá chamar o método main Fig. 2.2 Executando o Welcome1 em um prompt de comandos do Microsoft Windows XP. 14 2.3 Modificando nosso primeiro programa em Java • Modifique o exemplo da Fig. 2.1 para imprimir o mesmo conteúdo usando código diferente 15 2.3 Modificando nosso primeiro programa em Java • Modificando programas – Welcome2.java (Fig. 2.3) produz a mesma saída de Welcome1.java (Fig. 2.1) usando diferente código 9 10 System.out.print( "Welcome to " ); System.out.println( "Java Programming!" ); – Linha 9 mostra “Welcome to” com o cursor no final da linha escrita – Linha 10 mostra “Java Programming! ” mesma linha com o cursor na próxima linha. 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 // Fig. 2.3: Welcome2.java // Printing a line of text with multiple statements. Welcome2.java public class Welcome2 { // main method begins execution of Java application public static void main( String args[] ) { System.out.print( "Welcome to " ); System.out.println( "Java Programming!" ); } // end method main } // end class Welcome2 Resumo System.out.print mantém o cursor na mesma linha, então System.out.println continua na mesma linha. 1. Comentários 2. Linha em branco 3. Inicio da classe Welcome2 3.1 Método main 4. Chamada do método System.out.prin t 4.1 Método System.out.prin tln Welcome to Java Programming! 5. final de main e Welcome2 Saída do programa 17 2.3 Modificando nosso primeiro programa em Java • Caracteres de nova linha (\n) – Interpretados como caracteres especiais pelos métodos System.out.print e System.out.println – Indicam que o cursor deve ser posicionado na próxima linha – Welcome3.java (Fig. 2.4) System.out.println( "Welcome\nto\nJava\nProgramming!" ); 9 – Mesmo que o \n das funções printf em C • Uso – Pode ser usado em System.out.println ou System.out.print para começar uma nova linha • System.out.println( "Welcome\nto\nJava\nProgramming!" ); 18 Resumo 1 2 3 4 5 6 7 8 9 10 11 12 13 // Fig. 2.4: Welcome3.java // Printing multiple lines of text with a single statement. Welcome3.java public class Welcome3 { 1. main // main method begins execution of Java application public static void main( String args[] ) { System.out.println( "Welcome\nto\nJava\nProgramming!" ); } // end method main 2. System.out.prin tln (uses \n for new line) } // end class Welcome3 Welcome to Java Programming! Saída do programa Note como uma linha é criada para cada \n. 19 2.3 Modificando nosso primeiro programa em Java Caracteres de escape – A barra invertida ( \ ) é chamada caractere de escape – Indica que um caractere especial deve ser enviado para a saída Seqüência de Descrição excape \n Nova linha. Posiciona o cursor de tela no início da próxima linha Tabulação horizontal. Move o cursor de tela para a próxima parada \t de tabulação. \r Retorno de carro. Posiciona o cursor de tela no início da linha atual Não avança para a próxima linha. Qaulquer saída de caracteres depois do retorno de carro sobrescreve a saída anterior. \\ \" Impime a Barra invertida Aspas Duplas. Usado para imprimir o caractere de aspas duplas System.out.println( " \ "in quotes mostrará "in quotes" Fig. 2.5 Algumas seqüências comuns de escape \ "" ); 20 2.4 Exibindo Texto em uma Janela de diálogo • Exibição – Muitos aplicativos java utilizam janelas ou caixas de diálogo • Nós usamos até agora a janela de comandos – A classe JOptionPane permite aos programas usar caixas de diálogo • Pacotes – Conjunto de classes pré-definidas disponíveis para o uso do programador – Grupo de classes relacionadas é chamado pacotes • O grupo de todos os pacotes conhecidos como biblioteca de classes ou interface de programação de aplicativos Java ( Java applications programming interface, Java API) – JOptionPane está no pacote de extensão javax.swing • Este pacote tem classes para usar interfaces gráficas de usuário (Graphical User Interfaces GUIs) 21 2.4 Exibindo Texto em uma Janela de diálogo • No programa a seguir – – – – É uma aplicação que usa caixa de diálogos Explicação virá depois Mostra uma outra forma de mostrar uma saída Pacotes, métodos e GUI 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1// // Fig. 2.6: Welcome4.java Fig. 2.6: Welcome4.java // Imprimindo múltiplas linhas em uma caixa de diálogo. 2 // Printing multiple lines in a dialog box 3// import javax.swing.JOptionPane; // import class JOptionPane Pacotes de extensão de Java 4import javax.swing.JOptionPane; // importa a classe JOptionPane 5 public class Welcome4 { public class Welcome4 { 6 public static void main( String args] ) // método main começa execução do aplicativo Java 7 { public static void main( String args[] ) 8 { JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( 9 null, "Welcome\nto\nJava\nProgramming!" ); null, "Welcome\nto\nJava\nProgramming!" ); 10 11 12 System.exit( 0 ); termina o aplicativo System.exit( 0 );// // terminate the program } } // fim do método main Resumo Welcome4.java 1. instrução import 2. Classe Welcome4 2.1 main 2.2 showMessageDial og 2.3 System.exit } // fim da classe Welcome4 Saída do programa 23 2.4 Exibindo Texto em uma Janela de diálogo – Linhas 1-2: comentários como antes 4 // Pacotes de extensão de Java – Existe dois tipos de pacotes na API do Java – Pacotes do núcleo • Iniciam com a palavra java • Incluídos como parte do Java 2 Software Development Kit – Pacotes de extensão • Começam com javax • São pacotes novos de Java 5 import javax.swing.JOptionPane; // importa a classe JOptionPane – Instruções import • Usadas pelo compilador para identificar e localizar classes usadas nos programas Java • Dizem ao compilador a carregar a classe JOptionPane do pacote javax.swing 24 2.4 Exibindo Texto em uma Janela de diálogo – Linhas 6-11: Linhas em branco, início da classe Welcome4 e main 12 13 JOptionPane.showMessageDialog( null, "Welcome\nto\nJava\nProgramming!" ); – Chama o método showMessageDialog da classe JOptionPane • Requer dois argumentos • Múltiplos argumentos são separados por vírgulas (,) como em C • Por enquanto, vamos usar o primeiro argumento sempre como null • O segundo argumento é a string a ser exibida – showMessageDialog é um método static da classe JOptionPane • Métodos static são chamados usando-se o nome da classe, ponto (.) e o nome do método 25 2.4 Exibindo Texto em uma Janela de diálogo – Todas as instruções terminam com ; • Uma instrução simples pode ocupar múltiplas linhas • Não é possível quebrar uma intrução no meio de um identificador ou de uma string – Executando as linhas 12 e 13 a caixa de diálogo será exibida • Automaticamente inclui um botão OK – Fecha a caixa de diálogo • A barra de título contém o string Message 26 2.4 15 Exibindo Texto em uma Janela de diálogo System.exit( 0 ); // terminate application with window – Chama o método static exit da classe System • Termina a aplicação – Esta linha é necesária em qualquer aplicativo que exibe uma interface gráfica com o usuário (GUI) • Por ser um método static, precisa do nome da classe e ponto (.) • Identificadores que iniciam com a primeira letra maiúscula normalmente representam nome de classe – O argumento 0 indica que a aplicação finalizou com sucesso • Um valor diferente de zero geralmente indica que ocorreu um erro – A classe System é parte do pacote java.lang • Não há necessidade da instrução import para java.lang • java.lang é automaticamente importada em todo programa Java – Lines 17-19: Braces to end Welcome4 and main 27 2.5 Outra aplicação Java: Adicionando inteiros • Programa a seguir – Usa caixas de diálogo para entrada de dois valores pelo usuário – Usa o mensagens de diálogo para mostrar a soma dos dois valores 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 28 // Fig. 2.9: Addition.java // Programa para mostrar o resultado da adição de dois números. // Pacotes de extensão java import javax.swing.JOptionPane; public class Addition { Resumo Addition.java // importa a classe JOptionPane Declaração de variáveis: nome e tipo // método main inicia a execução do aplicativo java public static void main( String args[] ) { String firstNumber; // primeiro string inserido pelo usuário String secondNumber; // primeiro string inserido pelo usuário int number1; int number2; int sum; // primeiro a somar Lê onúmero primeiro inteiro como um // segundo número a somar e atribui para firstNumber. // soma de number1 e number2 String, // lê o primeiro número do usuário como uma String firstNumber = JOptionPane.showInputDialog( "Enter first integer" ); // lê o segundo número do usuário como uma String secondNumber = JOptionPane.showInputDialog( "Enter second integer" ); // converte os números do tipo String para o tipo int number1 = Integer.parseInt( firstNumber ); number2 = Integer.parseInt( secondNumber ); // Adiciona os números sum = number1 + number2; 1. import 2. Classe Addition 2.1 Declaração de variáveis 3. showInputDialog 4. parseInt 5. Soma dois números, coloca o resultado em sum Converte strings para inteiros. Soma, e coloca o resultado em sum. 29 33 34 35 36 37 38 39 40 41 // exibe os resultados JOptionPane.showMessageDialog( null, "The sum is " + sum, "Results", JOptionPane.PLAIN_MESSAGE ); System.exit( 0 ); Resumo // termina o aplicativo } // fim do método main } // fim da classe Addition Saída do programa 30 2.5 5 Outra aplicação Java: Adicionando inteiros import javax.swing.JOptionPane; // program uses JOptionPane – Importa classe JOptionPane para ser usada no programa 7 public class Addition { – Inicia a classe public Addition • Lembre-se que o nome do arquivo deve ser Addition.java – Linhas 10-11: main 12 13 String firstNumber; String secondNumber; // primeiro string inserido pelo usuário // primeiro string inserido pelo usuário – Declarações • firstNumber e secondNumber são variáveis 31 2.5 12 13 Outra aplicação Java: Adicionando inteiros String firstNumber; String secondNumber; // first string entered by user // second string entered by user – Variáveis • Posições de memória que armazenam um valor – Declarações semelhantes à linguagem C – São declaradas antes de serem usadas • firstNumber e secondNumber são do tipo String (package java.lang) – Armazenam strings • Nome de variáveis: qualquer identificador válido • As declarações terminam com ; String firstNumber, secondNumber; – É possível declarar múltiplas variáveis do mesmo tipo, separando-as por vírgula – Boa prática de programação comentar toda variável declarada 32 2.5 15 16 17 Outra aplicação Java: Adicionando inteiros int number1; int number2; int sum; // first number to add // second number to add // sum of number1 and number2 – Declara as variáveis number1, number2, e sum do tipo int • int armazena valores inteiros (números): i.e., 0, -4, 97 • Tipos float e double podem armazenar números com casas decimais (reais) • Tipo char pode armazenar um caractere simples: como: x, $, \n, 7 • Tipos primitivos – Veremos mais detalhes adiante 33 2.5 20 Outra aplicação Java: Adicionando inteiros firstNumber = JOptionPane.showInputDialog( "Enter first integer" ); – Lê um String do usuário, representando o primeiro número a ser adicionado • Método JOptionPane.showInputDialog exibe o seguinte: • Essa mensagem é chamada de prompt – direciona o usuário para uma ação específica • O texto a ser mostrado como prompt é passado como argumento • Se um tipo de dado errado é entrado (não inteiro) ou se o botão Cancel for pressionado, ocorrerá um erro 34 2.5 20 Outra aplicação Java: Adicionando inteiros firstNumber = JOptionPane.showInputDialog( "Enter first integer" ); – O resultado da chamada de showInputDialog é atribuído a firstNumber usando o operador de atribuição = • Instrução de atribuição • = operador binário – recebe dois operandos – Expressão do lado direito é avaliada e atribuída à variável do lado esquerdo • Lê-se: firstNumber recebe o valor de JOptionPane.showInputDialog( "Enter first integer" ) 35 2.5 23 24 Outra aplicação Java: Adicionando inteiros secondNumber = JOptionPane.showInputDialog( "Enter second integer" ); – Similar a instrução precedente 27 28 number1 = Integer.parseInt( firstNumber ); number2 = Integer.parseInt( secondNumber ); – Método Integer.parseInt • Converte argumentos String em um inteiro (tipo int) – Classe Integer em java.lang • O inteiro retornado por Integer.parseInt é atribuído para a variável number1 (linha 27) – number1 foi declarado como sendo do tipo int • Linha 28 é similar 36 2.5 31 Outra aplicação Java: Adicionando inteiros sum = number1 + number2; – Instrução de atribuição • Calcula a soma de number1 e number2 • Usa o operador de atribuição = para atribuir o resultado para a variável sum • Lê-se: sum recebe o valor de number1 + number2 • number1 e number2 são operandos 37 2.5 34 35 Outra aplicação Java: Adicionando inteiros JOptionPane.showMessageDialog( null, "The sum is " + sum, "Results", JOptionPane.PLAIN_MESSAGE ); – Usa showMessageDialog para exibir o resultado – "The sum is " + sum • Usa o operador + para “adicionar" o literal string "The sum is" e sum • Concatenação da String e outro tipo – Resulta em uma nova string • Se sum contém 117, então "The sum is " + sum resulta na nova string "The sum is 117" • Note o espaço no final de "The sum is " • Veremos mais sobre strings adiante 38 2.5 34 35 Outra aplicação Java: Adicionando inteiros JOptionPane.showMessageDialog( null, "The sum is " + sum, "Results", JOptionPane.PLAIN_MESSAGE ); – Versão diferente de showMessageDialog • • • • • Requer quatro argumentos (ao invés de dois como antes) Primeiro argumento: null por enquanto, como antes Segundo: string a ser exibida Terceiro: string na barra de títulos Quarto: tipo de diálogo de mensagem com ícone – Linha 35 nenhum ícone: JOptionPane.PLAIN_MESSAGE 39 2.5 Outra aplicação Java: Adicionando inteiros Tipo de diálogo de mensagem Ícone Descrição JOptionPane.ERROR_MESSAGE Exibe um diálogo que indica um erro para o usuário. JOptionPane.INFORMATION_MESSAGE Exibe um diálogo com uma mensagem de informação para o usuário. O usuário poderá simplesmente dispensar o diálogo JOptionPane.WARNING_MESSAGE Exibe um diálogo que adverte o usuário sobre um problema em potencial. JOptionPane.QUESTION_MESSAGE Exibe um diálogo que impõe uma pergunta para o usuário. Este diálogo normalmente exige uma resposta, Tal como clicar em um botão Yes ou No JOptionPane.PLAIN_MESSAGE Fig. 2.12 Sem ícone Exibe um diálogo que simplesmente contém uma mensagem, sem nenhum ícone Constantes de JOptionPane para o diálogo de mensagem. 40 2.6 Conceitos de memória • Variáveis – Cada variável tem um nome, um tipo, um tamanho e um valor • Nomes correspondem a posições de memória – Quando um novo valor é colocado em uma variável, este valor substitui o valor que havia antes nessa variável (posição de memória). – A leitura de uma variável não modifica seu valor 41 2.6 Conceitos de memória • Representação visual – Sum = 0; number1 = 1; number2 = 2; sum 0 – Sum = number1 + number2; depois da execução da instrução sum 3 42 2.7 Aritmética • Operações aritméticas usadas na maioria dos programas – Uso • * para multiplicação • / para divisão • +, • Não existe operador para exponenciação – Divisão inteira produz um resultado inteiro (truncado) 7 / 5 resulta em 1 – O operador % retorna o resto 7 % 5 produz 2 43 2.7 Aritmética • Precedência de operadores – Alguns operadores aritméticos são realizados antes de outros (i.e., multiplicação antes de adição) • Parênteses são usados para forçar a ordem – Exemplo: para encontrar a média entre a, b e c • Não utilize: a + b + c / 3 • Use: ( a + b + c ) / 3 – Segue PEMDAS • Parênteses, Expoentes, Multiplicação, Divisão, Adição e Subtração 44 2.7 Operador(es) * / % + Fig. 2.17 Aritmética Operação(ões) Ordem de avaliação (precedência) Multiplicação Avaliados primeiro. Se houver vários Divisão operadores deste tipo, eles serão avaliados da Resto esquerda para a direita. Adição Avaliados em seguida. Se houver vários Subtração Operadores deste tipo, eles serão avaliados da esquerda para a direita. Precedência de operadores aritméticos 45 2.8 Tomada de Decisão: Operadores de igualdade e operadores relacionais • Estrutura de controle if – Mesma sintaxe de C e C++ – Se uma condição for verdadeira, então o corpo da estrutura if é executada • 0 é interpretado como falso, não zero é verdadeiro – O fluxo de execução sempre continua depois da estrutura if – Condições dos comandos if podem ser formados usando operadores de igualdade ou relacionais (próximo slide) if ( condition ) sentença executada se condição verdadeira 46 2.8 Tomada de Decisão: Operadores de igualdade e operadores relacionais Operador Algébrico Operador igual- Exemplo de Significado da de igualdade ou dade ou relacio- Condição em Condição em Java relacional nal em Java Java Equality operators == x == y = x é igual a y != x != y x não é igual a y Relational operators > x > y > x é maior que y < x < y < x é menor que y >= x >= y x é maior que ou igual a y <= x <= y x é menor que ou igual a y Fig. 2.19 Operadores de igualdade e operadores relacionais. • Exemplo de aplicação em programa logo a seguir 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 // Fig. 2.20: Comparison.java // Compara inteiros usando intruções if, operadores relacioais // e operadores de igualdade. // Pacotes de extensão java import javax.swing.JOptionPane; 47 Resumo Comparison.java public class Comparison { 1. import // método main inicia a execução do aplicativo java public static void main( String args[] ) { String firstNumber; // primeiro string digitado pelo usuário String secondNumber; // segundo string digitado pelo usuário String result; // um string contendo a saída int number1; int number2; // primeiro número a comparar // segundo número a comparar // lê o primeiro número do usuário como um string firstNumber = JOptionPane.showInputDialog( "Enter first integer:" ); // lê o segundo número do usuário como um string secondNumber = JOptionPane.showInputDialog( "Enter second integer:" ); // Converte os números do tipo string para o tipo int number1 = Integer.parseInt( firstNumber ); number2 = Integer.parseInt( secondNumber ); // inicializa o resultado como um string vazio result = ""; 2. Classe Comparison 2.1 main 2.2 Declarações 2.3 Entrada de dados (showInputDialo g) 2.4 parseInt 2.5 Inicialização de result 48 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 Resumo if ( number1 == number2 ) result = result + number1 + " == " + number2; if ( number1 != number2 ) result = result + number1 + " != " + number2; Comparison.java Teste de igualdade, cria nova string e a result. if ( number1 < number2 ) atribui result = result + "\n" + number1 + " < " + number2; if ( number1 > number2 ) result = result + "\n" + number1 + " > " + number2; 3. instrução if if ( number1 <= number2 ) result = result + "\n" + number1 + " <= " + number2; 4. showMessageDialo g if ( number1 >= number2 ) result = result + "\n" + number1 + " >= " + number2; // Exibe o resultado JOptionPane.showMessageDialog( null, result, "Comparison Results", JOptionPane.INFORMATION_MESSAGE ); System.exit( 0 ); // termina a aplicação } // fim do método main } // fim da classe comparison Note o uso de JOptionPane.INFORMATION_MESSAGE 49 Resumo Saída do programa 50 2.8 32 Tomada de Decisão: Operadores de igualdade e operadores relacionais result = ""; – Inicializa result com a string vazia 34 35 if ( number1 == number2 ) result = result + number1 + " == " + number2; – Instrução if checa a igualdade usando o operador (==) • Se as variáveis são iguais (condição verdadeira) – result é concatenado usando o operador + – result = result + outras strings – Lado direito é avaliado primeiro, e a nova string é atribuída à result • Se as variáveis não são iguais, a instrução do if não é executada 51 2.8 Tomada de Decisão: Operadores de igualdade e operadores relacionais • Precedência de operadores – Todos os operadores exceto o de atribuição = associam da esquerda para a direita • Por exemplo: x = y = z é avaliado como x = (y = z) Operadores Associatividade Tipo ( ) Esquerda para direita parênteses * / % Esquerda para direita De multiplicação + Esquerda para direita De adição < <= > >= Esquerda para direita relacional == != Esquerda para direita igualdade = Direita para esquerda De atribuição Fig. 2.21 Precedência e associatividade dos operadores discutidos até agora.