Eu estou tentando fazer um certo loop com métodos a madrugada inteira… é um programa simples ( e sei que existem maneiras mais fáceis de se fazer o mesmo), mas é justamente pra eu treinar a logica dos métodos. Enfim, criei esse código que tem um método que pergunta para o usuário 2 números, e faz a soma entre eles. Logo após tem um método perguntando se o usuário quer fazer outra soma, até ai tudo bem. Mas por algum motivo, logo depois de fazer a primeira soma, ele corre o método que serve para perguntar se o usuária quer fazer outra soma como se não tivesse “break” no “switch” que tem lá. Alguém sabe me dizer o que tá acontecendo???
Código:
package Exemplo;
import java.util.Scanner;
public class Codigo {
static Scanner scanner = new Scanner (System.in);
public static void somar() {
System.out.println("Digite o primeiro numero: ");
double a = scanner.nextDouble();
System.out.println("Digite o segundo numero: ");
double b = scanner.nextDouble();
double soma = a + b;
System.out.println("\nO resultado da soma é: "+ soma);
}
public static void somarNovamente() {
System.out.println("\nDeseja fazer outra soma?\nDigite 's' para sim\nDigite 'n' para não");
String resposta = scanner.nextLine();
switch(resposta) {
case "s": somar();
somarNovamente();
break;
case "n": System.out.println("Codigo encerrado.");
scanner.close();
break;
default: System.out.println("Opção não reconhecida.");
somarNovamente();
break;
}
}
public static void main(String[] args) {
System.out.println("Bem vindo ao codigo de soma.");
somar();
somarNovamente();
}
}
Exemplo de como seria se tudo estivesse OK, no console:
Bem vindo ao código de soma.
Digite o primeiro numero
usuário coloca o primeiro numero
Digite o segundo numero:
usuário coloca o primeiro numero
A soma dos números é: (soma dos números inseridos)
Deseja fazer outra soma?
Usuário responde “n”
Código encerrado.
O que realmente acontece:
Bem vindo ao código de soma.
Digite o primeiro numero
*usuário coloca o primeiro numero*
Digite o segundo numero:
*usuário coloca o primeiro numero*
A soma dos números é: (soma dos números inseridos)
Deseja fazer outra soma?
Digite ‘s’ para sim
Digite ‘n’ para não
Opção não reconhecida. Isso não deveria aparecer (Como resolver???)
Deseja fazer outra soma?
*Usuário responde "n"*
Código encerrado.