Galera fiquei com uma dúvida nesse pequeno programa, no teste esta dizendo que o resultado que vai aparecer é 21, mas como?alguém poderia me explicar por favor?
public class Stepper {
enum Roman{I,V,X,L,C,M}
public static void main(String... bang) {
int x= 7;
int z= 2;
Roman r = Roman.X;
do{
switch(r){
case C:
r=Roman.L;
break;
case X:
r=Roman.C;
case L:
if(r.ordinal()>2)z+=5;
case M:
x++;
}
z++;
}while(x<10);
System.out.println(z);
}
}
Cara roda esse código debugando. Ai vc vê passo a passo como ele chega nesse resultado.
Veja se a explicação abaixo é util.
Volta…: 0 valor de X…: 7 valor de Z…: 2
Volta…: 1 valor de X…: 8 valor de Z…: 8
Volta…: 2 valor de X…: 8 valor de Z…: 9
Volta…: 3 valor de X…: 9 valor de Z…: 15
[quote=beterincosto]Veja se a explicação abaixo é util.
Volta…: 0 valor de X…: 7 valor de Z…: 2
Volta…: 1 valor de X…: 8 valor de Z…: 8
Volta…: 2 valor de X…: 8 valor de Z…: 9
Volta…: 3 valor de X…: 9 valor de Z…: 15
[/quote]
É isso mesmo, não tem muita complicação, creio que o único “peguinha” seria o case sem ‘break’, isso faz com que faça os outros cases.
[quote=lucasportela][quote=beterincosto]Veja se a explicação abaixo é util.
Volta…: 0 valor de X…: 7 valor de Z…: 2
Volta…: 1 valor de X…: 8 valor de Z…: 8
Volta…: 2 valor de X…: 8 valor de Z…: 9
Volta…: 3 valor de X…: 9 valor de Z…: 15
[/quote]
É isso mesmo, não tem muita complicação, creio que o único “peguinha” seria o case sem ‘break’, isso faz com que faça os outros cases.[/quote]
E, justamente pelos cases sem breaks é que o valor de z chega a isso.