Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

[SCJP] Slides - Capitulo 5 - Livro Kathy Sierra, Slides de Informática

[SCJP] Slides - Capitulo 5 - Livro Kathy Sierra Criado pelo pessoal do grupo de estudos para certificação da PR. Vale a pena conferir

Tipologia: Slides

Antes de 2010

Compartilhado em 07/06/2009

gabriel-cardelli-12
gabriel-cardelli-12 🇧🇷

6 documentos

1 / 42

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Grupo de Estudos - SCJP
Controle de Fluxo
Exceções
Assertivas
Eduardo Silva
ufpb, junho de 2009
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a

Pré-visualização parcial do texto

Baixe [SCJP] Slides - Capitulo 5 - Livro Kathy Sierra e outras Slides em PDF para Informática, somente na Docsity!

Grupo de Estudos - SCJP

Controle de Fluxo

ExceçõesAssertivas

Eduardo Silva

ufpb, junho de 2009

instruções if

Formato básico:if (expressãoBooleana) {

...println(“entrou no if”); } if (new Boolean(true) && !ehMentira()) {

...println("no if"); } if (a == b & b > c || c != d && d <= a) {

...println("dentro"); }

avisos

if (ehVerdade())

if (!ehVerdade())

...println(“paradoxo”);

else

...println(“pior que é verdade”); int verum = 1, falsum = 0;// inválidos:if (verum)if (verum == true)if (1)if (falsum == false)// válidos:if (verum == 1)if (falsum == 0)



casado com o último if^ if (nota > 7)

...println(“passou”);...println(“deu beleza”);

instrução switch

char ch = 'a';if (ch == 'c') {

...println(“cê”); } else {

if (ch == 'b') {

...println(“bê”); } else {

if (ch == 'a') {

...println(“á”); } else {

...println(“outra”); } } }

char ch = 'a';switch (ch) {

case 'c':

...println(“cê”);break; case 'b':

...println(“bê”);break; case 'b':

...println(“á”);break; default:

...println(“outra”);

}

+ switch

long l = 11;switch (l) { } // possible lost of precision 

a expressão do switch só avaliará enums e (valores e variáveis que puderem ser implicitamente convertidos num int)final int x = 0, a = 1, b;b = 2;switch (x) {

case a:case b: // constant expression required } 

o argumento do case tem que ser uma constante em tempo de compilação (variável literal ou final, expressão constante,incluindo enum)

três erros de compilação:

byte b = 22;switch (b) {

case 22:case (b < 23):

break; case 128:

break; case 22: }

mais alguns

switch (new Integer(127)) {

case 127 {

...println(“deu beleza?”); } } int x = getNumPositivoMenorQueDez();switch (x) {

case 2:case 4:case 6:case 8:

...println(“é par”);

break;

default:

...println(“é ímpar”);

break;

} // passagem completa

imprime o que?

short s = 12;// --s;switch (s) {

case 11: ...print(“11”);default: ...print(“default”);case 13: ...print(“13”); }

while e do-while

while útil quando não se sabe quantas vezes o bloco terá que ser repetidowhile (expressaoBooleana) {

// um mói de coisa } 

do-while útil quando se quer executar um bloco ao menos uma vez antes de avaliar a expressãodo {

// outro mói } while (outraExpressao); // <- detalhe no ponto-e-vírgula

for

útil quando se souber o números de vezes que executará as instruções do bloco do loopfor (/* inicialização / ; / condição / ; / iteração */) {

// corpo do loop } for (int k = 0, j = 1; k < 10 && j < 10; k++, --j) {}

// beleza } ...println(k); // k já não existe mais aqui...println(j); // cannot find symbol 

ecxeto por uma saída forçada, as expressões de iteração e condição serão as últimas a seres executada num loop for

for aprimorado (for-each)

for (declaração : expressão) int x;long x2;Long[] La = {4L, 5, 6l};long[] la = {7l, 8L, 9};int[][] dobrado = {{3, 2, 1}, {6, 5, 4}};String[] ss = {“um”, “dois”, “quatro”};Animal[] animais = {new Dog(), newCat()};for (float y: la);for (long lp: La);for (int[] n: dobrado);for (int n2: dobrado[1]);for (String s: ss);for (Object o: ss);for(Animal a: animais);

for(x2: la);for(int x2: dobrado);for(int x3: la);for(Dog d: animais);

continue e break

continue

próxima iteração do laço (não pode vir fora um loop)



break

vai para próxima linha depois do laço

for (int in = 0; i < 10; i++) {

continue; // loop infinito? } for (int i = 0; i < 10; i++) {

if (i & 1 == 0) {

continue; } if (i == 8) {

break; } ...println(i); }

+ rótulos

as instruções continue e break rotuladas devem ficar dentro do loop que tiver o mesmo rótulo ou o código não serácompiladoint b = 10;int[] a = new int[4];1rotulo:

for (int n: a) break 1rotulo; rotulo2: {

while (b > 0) {

...println(b--); } continue rotulo2; }

manipulação de exceções

produz código eficiente e organizado 

mantém código de exceções separado do código “principal' 

permite “reutilização” do código de exceção para as diferentes exceções possíveis 

exceção

significa “condição excepcional” (falha no hardware,

exaustão de recursos, erros...) 

quando um evento excepcional ocorre, diz-se que uma exceção será

lançada

o código responsável por fazer algo com a exceção é chamado de

manipulador de exceções