package lista3;
import java.util.Scanner;
class MesComEnum {
enum mes {
JANEIRO(1), FEVEREIRO(2), MARÇO(3), ABRIL(4),
MAIO(5), JUNHO(6), JULHO(7), AGOSTO(8),
SETEMBRO(9), OUTUBRO(10), NOVEMBRO(11), DEZEMBRO(12);
mes(int a) {
numMes = a;
}
private int numMes;
public int getMes() {
return numMes;
}
}
public static void main(String args[]) {
Scanner dados = new Scanner(System.in);
mes jan = mes.JANEIRO;
mes fev = mes.FEVEREIRO;
mes mar = mes.MARÇO;
mes abr = mes.ABRIL;
mes mai = mes.MAIO;
mes jun = mes.JUNHO;
mes jul = mes.JULHO;
mes ago = mes.AGOSTO;
mes set = mes.SETEMBRO;
mes out = mes.OUTUBRO;
mes nov = mes.NOVEMBRO;
mes dez = mes.DEZEMBRO;
System.out.println("Digite o número de um Mês");
int sec = dados.nextInt();
if (sec == jan.getMes()) {
System.out.println("Mês de " + mes.JANEIRO);
} else if (sec == fev.getMes()) {
System.out.println("Mês de " + mes.FEVEREIRO);
} else if (sec == mar.getMes()) {
System.out.println("Mês de " + mes.MARÇO);
} else if (sec == abr.getMes()) {
System.out.println("Mês de " + mes.ABRIL);
} else if (sec == mai.getMes()) {
System.out.println("Mês de " + mes.MAIO);
} else if (sec == jun.getMes()) {
System.out.println("Mês de " + mes.JUNHO);
} else if (sec == jul.getMes()) {
System.out.println("Mês de " + mes.JULHO);
} else if (sec == ago.getMes()) {
System.out.println("Mês de " + mes.AGOSTO);
} else if (sec == set.getMes()) {
System.out.println("Mês de " + mes.SETEMBRO);
} else if (sec == out.getMes()) {
System.out.println("Mês de " + mes.OUTUBRO);
} else if (sec == nov.getMes()) {
System.out.println("Mês de " + mes.NOVEMBRO);
} else if (sec == dez.getMes()) {
System.out.println("Mês de " + mes.DEZEMBRO);
}
}
}
Como faria essa classe com o switch ao inves do if
6 Respostas
Switch permite escolher entre tipos primitivos como int e char e enums.
Logo,
switch(sec){
case 1:
//faz algo
break;
case 2:
//faz algo
break;
}
Manja?
Só que fazendo assim não funciona, só funciona sem o uso do enum, pegando o que o usuario digita e coloca no case direto
mas colocar o sec no switch e comparar cada case não está funcionando…
Só que fazendo assim não funciona, só funciona sem o uso do enum, pegando o que o usuario digita e coloca no case diretomas colocar o sec no switch e comparar cada case não está funcionando…
Isso significa uma coisa: você está fazendo errado.
Qual o erro?
O que acontece?
Eu apenas citei o que o switch pode fazer, claro que você irá fazer a escolha a partir do que o usuário inserir.
Olá brunoprogramadorjava!
No próprio GUJ tem o post sobre isso, dê uma olha em http://www.guj.com.br/java/75794-enum-em-bloco-switchcase, acredito que irá te ajudar.
Abraços!
Olá brunoprogramadorjava!
No próprio GUJ tem o post sobre isso, dê uma olha em http://www.guj.com.br/java/75794-enum-em-bloco-switchcase, acredito que irá te ajudar.
Abraços!
Muito obrigado Suellen e a todos que ajudaram