Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Dúvida em exercício

Bom dia pessoal, tudo bem? Alguém poderia me ajudar com uma dúvida nesse código abaixo de uma lista de exercícios que estou resolvendo?

/*29. Faça um algoritmo que receba o número do mês e mostre o mês 
correspondente. Valide mês inválido;*/
package Exercicio29;
import java.util.Scanner;
public class App {
     public static void main(String[] args) {
        Scanner leitor = new Scanner(System.in);
        System.out.println("Digite um numero para que eu possa verificar o mes"
                + " correspondente: ");     
        String resposta = "";
                                
        while (!resposta.equalsIgnoreCase("nao")) {
                
        int numero = leitor.nextInt();
        leitor.nextLine();
        
        switch (numero){
            case 1:
                System.out.println("O número " + numero + " representa o mês de Janeiro.");
                break;
            case 2:
                System.out.println("O número " + numero + " representa o mês de Fevereiro.");
                break;
            case 3:
                System.out.println("O número " + numero + " representa o mês de Março.");
                break;
            case 4:
                System.out.println("O número " + numero + " representa o mês de Abril.");
                break;
            case 5:
                System.out.println("O número " + numero + " representa o mês de Maio.");
                break;
            case 6:
                System.out.println("O número " + numero + " representa o mês de Junho.");
                break;
            case 7:
                System.out.println("O número " + numero + " representa o mês de Julho.");
                break;
            case 8:
                System.out.println("O número " + numero + " representa o mês de Agosto.");
                break;
            case 9:
                System.out.println("O número " + numero + " representa o mês de Setembro.");
                break;
            case 10:
                System.out.println("O número " + numero + " representa o mês de Outubro.");
                break;
            case 11:
                System.out.println("O número " + numero + " representa o mês de Novembro.");
                break;
            case 12:
                System.out.println("O número " + numero + " representa o mês de Dezembro.");
                break;
            default:
                System.out.println(numero + " e um numero invalido, nao representa nenhum mes do ano.");
        }
        System.out.println("Deseja repetir a verificacao? Para sair digite 'nao'");
        resposta = leitor.nextLine();
        }
    }
}

Aparentemente me parece certo, porém quando a pergunta do final é feita "Deseja repetir a verificação?", quando confirmo o loop não repete a pergunta para eu preencher o número, alguém consegue dar uma luz?

2 respostas
solução!

Olá, tudo bem? Para repetir a mensagem, basta inserir a mensagem dentro do while.


import java.util.Scanner;
public class Main
{
    public static void main(String[] args) {
        Scanner leitor = new Scanner(System.in);
        String resposta = "";
                                
        while (!resposta.equalsIgnoreCase("nao")) {
            System.out.println("Digite um numero para que eu possa verificar o mes"
                + " correspondente: ");
                    
            int numero = leitor.nextInt();
            leitor.nextLine();
        
            switch (numero){
                case 1:
                    System.out.println("O número " + numero + " representa o mês de Janeiro.");
                    break;
                case 2:
                    System.out.println("O número " + numero + " representa o mês de Fevereiro.");
                    break;
                case 3:
                    System.out.println("O número " + numero + " representa o mês de Março.");
                    break;
                case 4:
                    System.out.println("O número " + numero + " representa o mês de Abril.");
                    break;
                case 5:
                    System.out.println("O número " + numero + " representa o mês de Maio.");
                    break;
                case 6:
                    System.out.println("O número " + numero + " representa o mês de Junho.");
                    break;
                case 7:
                    System.out.println("O número " + numero + " representa o mês de Julho.");
                    break;
                case 8:
                    System.out.println("O número " + numero + " representa o mês de Agosto.");
                    break;
                case 9:
                    System.out.println("O número " + numero + " representa o mês de Setembro.");
                    break;
                case 10:
                    System.out.println("O número " + numero + " representa o mês de Outubro.");
                    break;
                case 11:
                    System.out.println("O número " + numero + " representa o mês de Novembro.");
                    break;
                case 12:
                    System.out.println("O número " + numero + " representa o mês de Dezembro.");
                    break;
                default:
                    System.out.println(numero + " e um numero invalido, nao representa nenhum mes do ano.");
        }
            System.out.println("Deseja repetir a verificacao? Para sair digite 'nao'");
            resposta = leitor.nextLine();
        }
    }
}

Obrigado Lucas, o código estava funcionando corretamente, o que fazia eu ter a falsa sensação de que não estava era justamente isso. A pergunta estava fora do While... Uma pequena alteração e funcionou perfeitamente. Obrigado mais uma vez.