Como faria essa classe com o switch ao inves do if

6 respostas
B
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);
		}
		 

	}
}

6 Respostas

drsmachado

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?

B

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…

drsmachado

brunoprogramadorjava:
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…


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.

suelengc

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!

suelengc

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!

B

Muito obrigado Suellen e a todos que ajudaram

Criado 21 de abril de 2012
Ultima resposta 21 de abr. de 2012
Respostas 6
Participantes 3