• Save
Linguagens de Programação II - Aula 3
Upcoming SlideShare
Loading in...5
×
 

Linguagens de Programação II - Aula 3

on

  • 4,312 views

Aula 3 - Linguagens de Programação II - Cursos de Sistemas de Informação III (manhã e noite). Instituto Federal de Educação, Ciência e Tecnologia (IFRS)

Aula 3 - Linguagens de Programação II - Cursos de Sistemas de Informação III (manhã e noite). Instituto Federal de Educação, Ciência e Tecnologia (IFRS)

Statistics

Views

Total Views
4,312
Views on SlideShare
4,227
Embed Views
85

Actions

Likes
3
Downloads
0
Comments
0

2 Embeds 85

http://alinedecampos.org 73
http://www.slideshare.net 12

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Linguagens de Programação II - Aula 3 Linguagens de Programação II - Aula 3 Presentation Transcript

  • Estruturas de controle em Java
  • Estruturas de controle As estruturas de controle dizem respeito ao domínio da ordem e comportamento de execução das instruções contidas em determinado código de um programa. Sequência Seleção (condicional) Repetição
  • Comandos condicionais São estruturas de controle que possibilitam que a execução de um programa seja desviada de acordo com condições estabelecidas.
  • As palavras reservadas if e else são cláusulas que formam uma estrutura que permite a seleção de dois caminhos lógicos. ATENÇÃO: Havendo apenas uma instrução em cada condição as chaves são desnecessárias. if-else comandos condicionais
  • if ( <condição> ) { <instruções para condição verdadeira> } else { <instruções para condição falsa> } if-else comandos condicionais
  • if-else comandos condicionais Estrutura de um controle condicional if Estrutura de um controle condicional if-else
  • switch (<expressão>) { case 1: instruções; break ; case 2: instruções; break; default: instruções; } switch-case comandos condicionais
  • Exemplo switch-case comandos condicionais import javax.swing.*; class SwicthCase { public static void main (String args[]) { String aux = JOptionPane.showInputDialog(null, “Número inteiro entre 0 e 5:&quot;); if (aux != null) { try { int x = Integer.parseInt(aux); String extenso = &quot;&quot;; switch (x) { case 0: extenso = &quot;zero&quot;; break; case 1: extenso = &quot;um&quot;; break; case 2: extenso = &quot;dois&quot;; break; case 3: extenso = &quot;três&quot;; break; case 4: extenso = &quot;quatro&quot;; break; case 5: extenso = &quot;cinco&quot;; break; default: extenso = &quot;número desconhecido&quot;; } JOptionPane.showMessageDialog(null, &quot;Número fornecido: &quot; + extenso); } catch(NumberFormatException erro) { JOptionPane.showMessageDialog(null, “Apenas valores numéricos inteiros!“); } } } } int x = Integer.parseInt(aux); String extenso = &quot;&quot;; switch (x) { case 0 : extenso = &quot;zero&quot;; break; case 1 : extenso = &quot;um&quot;; break; case 2 : extenso = &quot;dois&quot;; break; case 3 : extenso = &quot;três&quot;; break; case 4 : extenso = &quot;quatro&quot;; break; case 5 : extenso = &quot;cinco&quot;; break; default : extenso = &quot;número desconhecido&quot;; } JOptionPane.showMessageDialog(null, &quot;Número fornecido: &quot; + extenso);
  • Exceções Exceções dizem respeito aos erros que podem ser gerados durante a execução de um programa Java. Os erros devem ser controlados ou tratados dentro do programa pois é comum que exceções ocorram.
  • try catch exceções Esta forma de exceção desvia a execução do programa caso certos tipos de erro ocorram. try { <conjunto de instruções> } catch { <tratamento de erro 1> } catch { <tratamento de erro 2> } catch { <tratamento de erro n> }
  • try catch exceções ATENÇÃO: Interpretação: tentar executar o conjunto de instruções que estão no try se houver falha execute o catch para tratamento do erro. .: Quando a cláusula try é encerrada obrigatoriamente deve haver pelo menos um catch (a não ser que utilize outras estruturas). .: Depois do tratamento a execução do programa continua. .: Erros gerados estão relacionados com as classes usadas. Ex.: método parseFloat da classe Float (Float.parseFloat) pode gerar um erro de conversão numérica (NumberFloatException) Ou seja, tratamento de erros de acordo com o que se utiliza nas classes.
  • import javax.swing.*; class CondicaoIfelse { public static void main (String args[]) { String aux = JOptionPane.showInputDialog(null, &quot;Forneça um valor numérico entre 0 e 10&quot;); if (aux != null) { try { float x = Float.parseFloat(aux); if (x >= 0 && x <= 10) JOptionPane.showMessageDialog(null, &quot;Nota = &quot; + x + &quot;, válido.&quot;); else JOptionPane.showMessageDialog(null, &quot;Nota = &quot; + x + &quot;, inválido.&quot;); } catch(NumberFormatException erro) { JOptionPane.showMessageDialog(null, &quot;Digite apenas números.&quot;); } } System.exit(0); } } Exemplo if-else e try-catch comandos condicionais try { float x = Float.parseFloat(aux); if (x >= 0 && x <= 10) JOptionPane.showMessageDialog(null, &quot;Nota = &quot; + x + &quot;, válido.&quot;); else JOptionPane.showMessageDialog(null, &quot;Nota = &quot; + x + &quot;, inválido.&quot;); } catch (NumberFormatException erro) { JOptionPane.showMessageDialog(null, &quot;Digite apenas números.&quot;); }
  • finally exceções Faz parte da estrutura do try-catch geralmente inserido após o último catch. Opcional e fornece um conjunto de códigos que é sempre executado, independente da exceção ocorrer ou não. ATENÇÃO: A única forma de se utilizar o try-catch, sem o catch é utilizando o finally. É possível: try-catch, try-catch-finally e try-finally.
  • finally exceções ... catch (NumberFormatException erro) { JOptionPane.showMessageDialog(null, “Apenas números.&quot;); } finally { JOptionPane.showMessageDialog(null, “Final da execução.&quot;); } System.exit(0); ...
  • throws exceções Para descartar o tratamento de erros utiliza-se throws na declaração do método main da classe. Assim, torna-se desnecessário definir try-catch para tratamento de erros. Ex.: public static void main (String args[]) throws IOException
  • throws exceções import java.io.*; class Tratandoerros { public static void main (String args[]) throws IOException { BufferedReader dado; System.out.println(&quot;Entre com seu nome&quot;); dado = new BufferedReader(new InputStreamReader(System.in)); System.out.println(&quot;Seu nome é &quot; + dado.readLine()); } }
  • throw exceções Criar exceções próprias e dispará-las no momento que for desejado. Exceções forçadas, definidas por instâncias. class ExcecaoPropria { public static void main (String args[]) { try { System.out.print(“É fácil aprender &quot;); throw new Exception(&quot;MinhaExcecao&quot;); } catch ( Exception MinhaExcecao ) { System.out.print(&quot;a linguagem Java.&quot;); } } }
  • getMessage e printStackTrace exceções Utilizada para descobrir o tipo de erro ocorrido e em qual linha do código se encontra. O método getMessage consulta e retorna a string armazenada em uma exceção. O método printStackTrace retorna o tipo de exceção que foi gerado e em qual linha do código.
  • getMessage e printStackTrace exceções class InfoExcecoes { public static void main (String args[]) { int x = 10, y = 0, z = 0; try { z = x / y; // gera uma exceção na divisão por 0 } catch ( Exception erro ) { System.out.println ( erro . getMessage() ); erro . printStackTrace() ; } } } ATENÇÃO: Utilizando apenas Exception no catch significa que qualquer exceção será tratada neste bloco (default)
  • Laços de repetição Neste tipo de estrutura de controle um bloco de instruções é repetido o número de vezes conforme se especifique de acordo com uma condição. Após, o controle volta à estrutura do programa.
  • for laços de repetição for ( int x=0 ; x<10 ; x++ ) { <instruções> ; } Repete um determinado número de vezes, sempre incrementando a variável até que esta atinja o valor estabelecido.
  • While e do-while laços de repetição while ( <condição> ) { <conjunto de instruções> ; } Repete um conjunto de instruções enquanto o resultado de uma expressão lógica for verdadeiro. do { <conjunto de instruções> ; } while ( <condição> ); Avalia a condição antes de executar. Executa pelo menos uma vez e depois avalia.
  • Funções Matemáticas Classe nativa do Java especializada em realizar cálculos matemáticos . Sempre utiliza-se o método da classe Math Não é preciso importar a classe para utilizá-la, faz parte da classe java.lang (default no compilador do Java). Math . <nome do método> ( <argumentos ou lista de argumentos> ) Possui duas constantes: Math.E: base de logaritmos naturais = 2.7182818284590452354 Math.PI: valor de pi ( π ) = 3.14159265358979323846
  • Método ceil funções matemáticas Math . ceil (<valor do tipo double>) Arredondamento de um número do tipo double para o número posterior do tipo inteiro . class ArredondamentoPosterior { public static void main (String args[]) { double a = 5.2, b = 5.6, c = -5.8; System.out.println(&quot;Arredondando 5.2 = &quot; + Math. ceil (a)); System.out.println(&quot;Arredondando 5.6 = &quot; + Math. ceil (b)); System.out.println(&quot;Arredondando -5.8 = &quot; + Math. ceil (c)); } }
  • Método floor funções matemáticas Math . floor (<valor do tipo double>) Arredondamento de um número do tipo double para número anterior do tipo inteiro . class ArredondamentoAnterior { public static void main (String args[]) { double a = 5.2, b = 5.6, c = -5.8; System.out.println(&quot;Arredondando 5.2 = &quot; + Math . floor (a)); System.out.println(&quot;Arredondando 5.6 = &quot; + Math . floor (b)); System.out.println(&quot;Arredondando -5.8 = &quot; + Math . floor (c)); } }
  • Método max funções matemáticas Math . max (<valor A>, <valor B>) Compara dois valores e indica o maior (nos tipos double, float, int ou long) class Maior { public static void main (String args[]) { int a = 10, b = 15; double c = -5.9, d = -4.5; System.out.println(&quot;O maior entre 10 e 15 = &quot; + Math . max (a,b)); System.out.println(&quot;O maior entre -5.9 e -4.5 = &quot; + Math . max (c,d)); System.out.println(&quot;O maior entre 10 e -5.9 = &quot; + Math . max (a,c)); } }
  • Método min funções matemáticas Math . min (<valor A>, <valor B>) Compara dois valores e indica o menor (nos tipos double, float, int ou long) class Menor { public static void main (String args[]) { int a = 10, b = 15; double c = -5.9, d = -4.5; System.out.println(&quot;O menor entre 10 e 15 = &quot; + Math . min (a,b)); System.out.println(&quot;O menor entre -5.9 e -4.5 = &quot; + Math . min (c,d)); System.out.println(&quot;O menor entre 10 e -5.9 = &quot; + Math . min (a,c)); } }
  • Método sqrt funções matemáticas Math . sqrt (<valor do tipo double>) Extrai raiz quadrada (somente em tipo double) class Raiz { public static void main (String args[]) { double a = 900, b = 30.25; System.out.println(&quot;A raiz quadrada de 900 = &quot; + Math . sqrt (a)); System.out.println(&quot;A raiz quadrada de 30.25 = &quot; + Math . sqrt (b)); } }
  • Método pow funções matemáticas Math . pow (<valor da base>, <valor da potência>) Eleva um número ao quadrado ou outra potência . Valor de base e de potência deve ser do tipo double . Class Potencia { public static void main (String args[]) { double base = 5.5, potencia = 2; System.out.println(&quot;5.5 elevado a 2 = &quot; + Math . pow (base,potencia)); System.out.println(&quot;25 elevado a 0.5 = &quot; + Math . pow (25,.5)); System.out.println(&quot;5678 elevado a 0 = &quot; + Math . pow (5678,0)); } }
  • Método random funções matemáticas (int) ( Math . random () * 100) Gera valores de forma aleatória . Um valor do tipo double entre 0.0 e 1.0 é sorteado (valor 1.0 nunca será sorteado). Para números de 0 a 99 ou para truncar a parte float para integer multiplica-se por 100. class Randomico { public static void main (String args[]) { for(int qtd=1;qtd<=5;qtd++) { for(int x=1;x<=6;x++) { int num = (int) ( Math . random() * 100); System.out.print(num + &quot; &quot;); } System.out.println(); } } }
  • Funções com Strings As strings correspondem à união de conjuntos de caracteres . As strings são instâncias da classe String , ou seja, não pertencem aos tipos primitivos como int, float, double .
  • Método length funções com Strings <string> . length (); Retorna o tamanho de uma string, incluindo os espaços em branco. Sempre um valor do tipo inteiro. class Tamanho { public static void main (String args[]) { String frase = “Linguagem Java&quot;; int tamanho; tamanho = frase . length() ; System.out.println(&quot;String: &quot; + frase); System.out.println(&quot;Tamanho da string = &quot; + tamanho); } }
  • Método charAt funções com Strings <string> . charAt (<indice>); Retorna um caractere de determinada string de acordo com índice especificado. Índice do primeiro caractere é sempre 0. class Caracteres { public static void main (String args[]) { String frase = &quot;Aprendendo Java&quot;; System.out.println(&quot;String = &quot; + frase); System.out.println(&quot;Caracter = &quot; + frase.charAt(5)); System.out.print(&quot;Trecho = &quot;); for (int i=11;i<=14;i++) { System.out.print(frase.charAt(i)); } System.out.println(); } }
  • Método substring funções com Strings <string> . substring ( <índice inicial>, [<índice final>] ); Retorna uma cópia dos caracteres da string a partir do índice inicial até o fim da string ou até o índice final especificado. String x = frase. substring ( 10 ); // retorna “JAVA” String x = frase. substring ( 3, 9 ); // retorna “GUAGEM” ATENÇÃO: Sempre o índice final – índice inicial. Se os índices estiverem fora dos limites um erro do tipo StringIndexOutBoundsException. L I N G U A G E M J A V A 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
  • Método toUpperCase e toLowerCase funções com Strings <string> . toUpperCase (); ou <string> . toLowerCase (); Utilizados para transformar as letras de uma string em maiúsculas e minúsculas. class MaiusculoMinusculo { public static void main (String args[]) { String palavra = &quot;LINGUAGEM JAVA&quot;; System.out.println(palavra. substring (10,14)); String palavra1 = “SISTEMAS&quot;, palavra2 = “informação&quot;; System.out.println(“SISTEMAS em minúsculo = &quot; + palavra1. toLowerCase() ); System.out.println(“informação em maiúsculo = &quot; + palavra2. toUpperCase() ); System.out.println(“iFrS em minúsculo = &quot; + “iFrS&quot;. toLowerCase() ); } }
  • Método trim funções com Strings class Remover { public static void main (String args[]) { String frase = “ Java : é muito legal &quot;; System.out.println(&quot;Com espacos: &quot; + &quot;*&quot; + frase + &quot;*&quot;); System.out.println(&quot;Sem espacos: &quot; + &quot;*&quot; + frase. trim() + &quot;*&quot;); } } <string> . trim (); Remove espaços em branco que constam no início e no fim da string, ou seja, espaços entre as palavras são mantidos.
  • Método replace funções com Strings class Substituir { public static void main (String args[]) { String frase1 = “nós adoramos Java&quot;; String frase2 = frase1.replace(&quot; &quot;,&quot;&quot;); System.out.println(&quot;Frase 1: &quot; + frase1); System.out.println(&quot;Frase 2: &quot; + frase2); System.out.println(&quot;Frase 3: &quot; + frase1.replace(&quot; &quot;, &quot;_&quot;)); System.out.println(&quot;Frase 4: &quot; + frase1.replace(&quot;a&quot;, &quot;u&quot;)); System.out.println(&quot;Frase 5: &quot; + frase1.replace(“Java&quot;, “JAVA&quot;)); } } <string> . replace ( <caracteres para substituir>, <substituição> ); Substitui caracteres ou um grupo de caracteres em uma String. Caso não encontrado o caractere a string original é retornada.
  • Método valueOf funções com Strings class Converter { public static void main (String args[]) { String x = &quot;&quot;; int a = 11; long b = 222; float c = 3333; double d = 4.444; x = x + String. valueOf (a) + &quot; - &quot;; x = x + String. valueOf (b) + &quot; - &quot;; x = x + String. valueOf (c) + &quot; - &quot;; x = x + String. valueOf (d); System.out.println(&quot;Valores convertidos:&quot;); System.out.println(x); } } String . valueOf ( <nome da variável a ser convertida> ); Utilizado para converter diversos tipos de dados em strings . Aceita vários tipos numéricos de argumentos. ATENÇÃO: O mesmo resultado seria alcançado com a simples concatenação de variáveis. O método valueOf() tem mais utilidade no tratamento de arrays.
  • Método indexOf funções com Strings class Busca { public static void main (String args[]) { String texto = “Linguagem de Programação Java&quot;; char caractere = 'a' ; System.out.println(&quot;indice: &quot; + texto. indexOf (caractere)); System.out.println(&quot;indice: &quot; + texto. indexOf (caractere,10)); System.out.println(&quot;indice: &quot; + texto. indexOf (“Java&quot;)); System.out.println(&quot;indice: &quot; + texto. indexOf (“Linguagem&quot;,15)); } } String . indexOf ( <caractere ou substring, [posição inicial]> ); Utilizado na busca de caracteres ou substrings em uma String . Caso encontre, retorna a posição onde o caractere ou o início da substring se encontra. Caso não encontre retorna o valor -1.