Escreva o método diasMes, visível somente dentro da classe, que receba um mês M como parâmetro e imprima uma das seguintes mensagens no console

[restante da pergunta] … utilizando a estrutura switch/case:

  • Mês com 31 dias.
  • Mês com 30 dias.
  • Mês com menos de 30 dias.

Aí eu fiz isso:

public class questao4 {

        private static void diaMes(String M){

            ArrayList<String> mes = new ArrayList<>("jan", "fev", "mar", "abr", "mai", "jun", "jul", "ago", "set", "out", "nov", "dez");

            Scanner scan = new Scanner();

            switch (diaMes) {
                case "jan", "mai", "jul", "set", "nov":
                    System.out.println("Mês com 31 dias");
                case "abr", "jun", "ago", "out", "dez":
                    System.out.println("Mês com 30 dias");
                case "fev":
                    System.out.println("Mês com 31 dias");
                default:
            }

        }
}

E tá dando erro. Eu acho que meu problema está na declaração do método. Alguém ajuda?

A sintaxe do switch está errada. Vc deve repetir a palavra-chave case para cada opção:

switch (valor) {
	case "valorA":
	case "valorB":
		// faz alguma coisa
		break;
	case "valorC":
	case "valorD":
		// faz outra coisa
		break;
	default:
		// não caiu em nenhum caso acima
}

FONTE: The switch Statement

1 curtida

É verdade, @Lucas_Camara! Isso(o switch/case) também, mas algo mais está errado porque não solucionei o problema hehe

Tá faltando um argumento em new Scanner. Se for ler do teclado: new Scanner(System.in);