Duvida sobre questao

3 respostas
M

Vejam essa questao e digam o que acham

Given the following,

1. public class Switch2 {
2.   final static short x = 2;
3.   public static int y = 0;
4.   public static void main(String [] args) {
5.       for (int z=0; z < 4; z++) {
6.          switch (z) {
7.            case x: System.out.print("0 ");
8.            default: System.out.print("def ");
9.            case x-1: System.out.print("1 "); break;
10.          case x-2: System.out.print("2 ");
11.        }
12.     }
13.   }
14. }

what is the result?

A. 0 def 1
B. 2 1 0 def 1
C. 2 1 0 def def
D. 2 1 def 0 def 1
E. 2 1 2 0 def 1 2
F. 2 1 0 def 1 def 1

a resposta eh essa:

Essa questao eh do livro da Kathy, porem pelo que eu li nesse livro mesmo o resultado seria outro pois na primeira iteracao na linha 8 com a keyword “default” deveria ser executada dpois a linha pois nao tem break na linha e oito encontraria o break na linha 9…e assim por diante…

O que eu escrevi esta correto ??

Valeu!!!

3 Respostas

N

Oi Marcelo.

A solução eu não sei…porém sei que por padrão sempre se coloca o “default” por ultimo.

D

a resposta do livro esta correta!

em uma estrutura switch primeiro ele vai comparar todos os 'case XX:…'
so depois se nenhum desses case combinar eh q o ‘default:…’ vai ser executado.

entao na primeira interação q o z vale 0 vai acontecer:
case x: (como x vale 2 entao vai dar falso)
default: (ainda nao vai ser executado pq ainda existem outros cases para serem avaliados)
case x-1: (como x-1 vale 1 vai dar falso)
case X-2: (como x-2 vale 0 entao vai dar verdadeiro, o codigo daqui vai ser executado e o ‘default’ nao vai ser executado.

ok!?

M

Ahh…ta entao independente da linha que o default estiver ele so vai ser executado dpois q todos os cases forem testados e nenhum combinar…eu tinha entendido que se acima dele nenhum combinar ele seria executado.

Valeu!!!

Criado 26 de janeiro de 2005
Ultima resposta 26 de jan. de 2005
Respostas 3
Participantes 3