-
Dado:
public class Main { /** * @param args */ public static void main(String[] args) { for(int i = 0; i<3|(i%2)==0;System.out.print("BLA"), i++){ System.out.print(" "+i+" "); } } }
- BLA 0 BLA 1 BLA 2
- 0 BLA 1 BLA 2 BLA
- 0 BLA 1 BLA 2 BLA 3 BLA
- 0 1 2 BLA BLA BLA
- 0 1 2 BLA 3 BLA
- esse código não compila
- é lançada uma Exception
-
Dado o seguinte código:
public class SwitchTesteEnum { enum Naipe{PAUS,COPAS,ESPADAS,OUROS} /** * @param args */ public static void main(String[] args) { String a = "Java "; switch (Naipe.COPAS) { case PAUS: a+="PAUS "; default: a+="não será impresso "; case COPAS: a+="copas "; break; case ESPADAS: a+=" espadilha "; break; case OUROS: a+="ouros "; } System.out.println(a); } }
- copas
- Java copas espadilha ouros
- Java copas
- copas espadilha ouros
- copas Java
- erro de compilação
- é lançada uma exceção
-
Dado a classe:
public class LoopRotulado { /** * @param args */ public static void main(String[] args) { System.out.print(true^true|false); System.out.print(true^true&true); System.out.print(true|true&false); System.out.print(true|true&&false); } }
- truefalsetruefalse
- falsefalsetruefalse
- falsefalsefalsefalse
- truetruetruetrue
- falsetruefalsetruefalse
-
Dado:
public class X { /** * @param args */ public static void main(String[] args) { int a=9,y=6; for(int z=0;z<6;z++,y--){ a--; label: if(a>3){ System.out.print(a+" "); --a; break label; } a--; } } }
- 8 7 6
- 8 5
- 8
- 7
- é lançada uma exceção
- erro de compilação
-
Dado:
public class SwitchTeste { final static int x2=7; final static Integer y4=8; /** * @param args */ public static void main(String[] args) { Integer x1=5; String s="a"; if(x1<9)s+="b"; switch(x1){ case 5: s+="c"; case x2: s+="d"; case y4: s+="e"; } } }
- abc
- abcde
- a compilação falha devido apenas a 1 erro, relativo a switch(x1)
- a compilação falha devido a erros em várias linhas.
- a compilação falha devido apenas a 1 erro, relativo a case y4: s+=”e”;
GABARITO COMENTADO
-
Resposta B
A sintaxe mostrada é válida. Em conjunto com a condição de incremento/decremento, qualquer outra instrução pode ser colocada. Pensando-se em termos bem amplos, o problema inteiro poderia ser resolvido em uma declaração de loop for. Porém, isso é por demais confuso. Esse loop será executado 3 vezes. O valor de i aparece na frente, sendo sucedido pela String.
-
Resposta C
A declaração de enum pode estar fora ou dentro da classe. O modo de invocação é a mesmo. Nesse caso, existe coincidência com o case copas e a String produzida será o resultado da concatenação entre Java e copas.
-
Resposta B
Note atentamente a tabela de precedência de operadores lógicos. É importante que você memorize esta tabela para a prova.
& AND sem abreviação Da esquerda para direita ^ XOR Da esquerda para direita | OR sem abreviação Da esquerda para direita && AND com abreviação Da esquerda para direita || OR com abreviação Da esquerda para direita Baseados nela, vamos avaliar a questão.
System.out.print(true^true|false);->false System.out.print(true^true&true);->false System.out.print(true|true&false);->true System.out.print(true|true&&false);->false
Desse modo, a saída é falsefalsetruefalse.
-
Resposta F
Os rótulos apenas valem para blocos e não instruções condicionais, como switches e ifs.
-
9. Resposta E
Primeiramente, essa é uma questão altamente específica. Uma instrução case pode conter apenas constantes literais em tempo de compilação. O problema é que uma referência Integer(y4), mesmo sendo final, não pode entrar em um case. Sendo assim, esse código não compila.
Em breve daremos continuidade nesta série com mais um artigo.
Leia todos artigos da série
- Desmistificando a Certificação SCJP6 - Parte I
- Desmistificando a Certificação SCJP6 - Parte II
- Desmistificando a Certificação SCJP6 - Parte III
- Desmistificando a Certificação SCJP6 - Parte IV - Parte 1
- Desmistificando a Certificação SCJP6 - Parte IV - Parte 2
- Desmistificando a Certificação SCJP6 - Parte V - Parte 1/3
- Desmistificando a Certificação SCJP6 - Parte V - Parte 2/3
- Desmistificando a Certificação SCJP6 - Parte V - Parte 3/3
- Desmistificando a Certificação SCJP6 - Parte VI - Parte 1/3
- Desmistificando a Certificação SCJP6 - Parte VI - Parte 2/3
- Desmistificando a Certificação SCJP6 - Parte VI - Parte 3/3
- Desmistificando a Certificação SCJP6 - Parte VII - Parte 1/3
- Desmistificando a Certificação SCJP6 - Parte VII - Parte 2/3
- Desmistificando a Certificação SCJP6 - Parte VII - Parte 3/3
- Operadores apropriados - Desmistificando a Certificação SCJP6 - Parte VIII - Parte 1
- Instruções if e switch - Desmistificando a Certificação SCJP6 - Parte VIII - Parte 2
- Iteradores e loops - Desmistificando a Certificação SCJP6 - Parte VIII - Parte 3
- Mini-Teste: Desmistificando a Certificação SCJP6 - Parte VIII - Parte 4 - A
- Tratamento de Exceções em Java: Desmistificando a Certificação SCJP6 - Parte IX - Parte 1
- Definindo Exceções em Java: Desmistificando a Certificação SCJP6 - Parte IX - Parte 2
- Assertivas Java: Desmistificando a Certificação SCJP6 - Parte IX - Parte 3
- Mini-Teste: Desmistificando a Certificação SCJP6 - Parte IX - Parte 4
- String: Desmistificando a Certificação SCJP6 - Parte X - Parte 1
- StringBuilder/StringBuffer e File: Desmistificando a Certificação SCJP6 - Parte X - Parte 2
- Combinação de Classes E/S: Desmistificando a Certificação SCJP6 - Parte X - Parte 3
- Utilizando Arquivos e Diretórios: Desmistificando a Certificação SCJP6 - Parte X - Parte 4
- Console e Serialização: Desmistificando a Certificação SCJP6 - Parte X - Parte 5
- Mini-teste: Desmistificando a Certificação SCJP6 - Parte X - Parte 6 A
- Mini-teste: Desmistificando a Certificação SCJP6 - Parte X - Parte 6 B
- Expressões Regulares: Desmistificando a Certificação SCJP6 Parte XI - Parte 1
- Lista Negada e Metacaracteres: Desmistificando a Certificação SCJP6 Parte XI - Parte 2
- Metacaracteres Âncora e Busca: Desmistificando a Certificação SCJP6 Parte XI - Parte 3