3
respostas

Dúvida sobre loop

Fiz um programinha basico pra calcular conversão de moeda. Eu queria fazer ele continuar rodando após a finalização, pra continuar recebendo entrada em vez de finalizar a execução, mas nao faço idéia, alguém pode me ajudar? Segue o código:

    int moeda;

    Scanner teclado2 = new Scanner(System.in);
    Scanner teclado1 = new Scanner(System.in);
    System.out.println("Escolha a moeda a ser convertida:");
    System.out.println("1 - Euro");
    System.out.println("2 - Dólar Americano");
    System.out.println("3 - Dólar Canadense");
    System.out.print("Digite 1, 2 ou 3 = ");
    moeda = teclado1.nextInt();

    if (moeda == 1) {
        System.out.print("Digite o valor a ser convertido pra Real = ");
        int valor = teclado2.nextInt();
        System.out.println(valor * 6.14 + " reais");

    } else if

    (moeda == 2) {
        System.out.print("Digite o valor a ser convertido pra Real = ");
        int valor = teclado2.nextInt();
        System.out.println(valor * 5.21 + " reais");

    } else if

    (moeda == 3) {
        System.out.print("Digite o valor a ser convertido pra Real = ");
        int valor = teclado2.nextInt();
        System.out.println(valor * 4.13 + " reais");

    }
}
3 respostas

do { < instruções > } while(condição);

coloque o código dentro da estrutura e uma variavel no fim para dar continuidade ou não a condição. eu faria um scanner do teclado questionando "Deseja continuar? Digite 1 para sim ou 2 para não".

Oie Daniel, tudo bem contigo?

Uma forma de fazer isso que você deseja é colocando toda essa sua lógica dentro de um "while", segue seu código alterado com uma explicação:

        boolean rodar = true;     // declaração de uma variável boolean

        while (rodar == true) {    // enquanto a variável "rodar" for true (verdadeira) o loop vai acontecer, mas se em algum momento se tornar false (falso) o loop vai parar

            int moeda;

            Scanner teclado2 = new Scanner(System.in);
            Scanner teclado1 = new Scanner(System.in);
            System.out.println("Escolha a moeda a ser convertida:");
            System.out.println("1 - Euro");
            System.out.println("2 - Dólar Americano");
            System.out.println("3 - Dólar Canadense");
            System.out.println("4 - Sair");

            System.out.print("Digite 1, 2, 3 ou 4= ");
            moeda = teclado1.nextInt();

            if (moeda == 1) {
                System.out.print("Digite o valor a ser convertido pra Real = ");
                int valor = teclado2.nextInt();
                System.out.println(valor * 6.14 + " reais");

            } else if

            (moeda == 2) {
                System.out.print("Digite o valor a ser convertido pra Real = ");
                int valor = teclado2.nextInt();
                System.out.println(valor * 5.21 + " reais");

            } else if

            (moeda == 3) {
                System.out.print("Digite o valor a ser convertido pra Real = ");
                int valor = teclado2.nextInt();
                System.out.println(valor * 4.13 + " reais");

            } else if (moeda == 4) {
                rodar = false;    // com a variável rodar se tornando false o loop do while irá parar
                System.out.println("Você saiu! Se quiser rodar novamente, reinicie o programa.");
            }
        }

Espero ter ajudado!

Se tiver qualquer outra dúvida estou por aqui :)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!

Perfeito Igor, muito obrigado! Não fazia idéia, agora aprendi mais uma coisa =D