Como é q o pode cair no case x-1 se o valor do i é 2?
public class Caso {
public static void main(String[] args) {
final int x = 2;
for (int i = 0; i < 4; i++) {
switch (i) {
case x: System.out.println(i+" "+"0");
case x-1: System.out.println(i+" "+"1");break;
default: System.out.println(i+" "+"def");
case x-2: System.out.println(i+" "+"2");
}
}
}
}
kra…pode parecer coisa de newbie …mas não faz sentido ele entrar em um case que não é dele. Pra mim o case é um substituto do if. Sei la, agora vi isso vou ficar ligado no exame.
Iteração 1: x = 0, logo executa o case x-2;
Iteração 2: x = 1, logo executa o case x-1;
Iteração 3: x = 2, logo executa o case x e o case x-1;
Iteração 4: x = 3, logo executa o case default e o case x-2;
Talvez você esteja se confundindo com o break e o case default. Como boa prática, e a menos que você tenha uma ótima razão para fazer diferente, sempre coloque o case default como a última opção.
o “switch/case” é um substituto do “goto controlado” do Fortran, na verdade.
É uma coisa tão antiga que você nunca deve ter ouvido falar nele.
Deixo a explicação a aqueles carinhas que conhecem Fortran aqui no Fórum.
e é o correto, pois como o thingol falou, vc não usou breaks. Assim quando um case é satisfeito, o switch executa até o próximo break OU até o final do switch.