Olá, boa tarde. Sou novo na programação em java e estou tendo esse erro: Exception in thread main java.util.NoSuchElementException (…) quando tento acessar a opção -1 do switch case presente no método AlteraDadosPessoais da classe DadosPessoais. A ideia seria retornar ao menu principal do método main da classe Cliente, mas acontece o erro. (Quando ocorre senha inválida, também vai para o mesmo erro). Alguem sabe como consertar esse erro? Seguem abaixo os códigos:
import java.util.Scanner;
public class Cliente{
public static void Menu() {
System.out.println(“Para saque digite: 0”);
System.out.println(“Para deposito digite: 1”);
System.out.println(“Para alterar seus dados pessoais digite: 3”);
System.out.println(“Para encerrar a cessão digite: -1”);
}
public static void main(String[] args) {
Scanner en = new Scanner(System.in);
Conta conta1 = new Conta(en.nextLine(),en.nextLine(),en.nextLine(),
en.nextLine(),en.nextLine(), en.nextInt(),en.nextFloat(),en.nextFloat());
Menu();
short escolha = en.nextShort();
while(escolha!=-1) {
switch (escolha) {
case 0: conta1.Saque(en.nextFloat());
break;
case 1: conta1.Deposito(en.nextFloat());
break;
case 3: conta1.AlteraDadosPessoais();
break;
default: System.out.println("Opção inválida");
break;
}
System.out.println();
Menu();
escolha = en.nextShort();
}
System.out.println("Obrigado pela preferência");
en.close();
}
}
public class Conta extends DadosPessoais{
private int numeroConta;
private float saldo;
private float limite;
public Conta(String nome, String Senha, String endereco, String nacionalidade, String estadoCivil,
int numeroConta,float saldo,float limite){
super(nome,Senha,endereco,nacionalidade,estadoCivil);
this.numeroConta = numeroConta;
this.saldo = saldo;
this.limite = limite;
}
public void Saque(float valor) {
if(this.saldo<valor)
System.out.println("Saldo insuficiente");
else {
this.saldo = this.saldo - valor;
System.out.println("Saldo atual: " + this.saldo);
}
}
public void Deposito(float valor) {
if(this.saldo + valor>this.limite)
System.out.println("Fora do limite permitido");
else {
this.saldo = this.saldo + valor;
System.out.println("Saldo atual: " + this.saldo);
}
}
}
import java.util.Scanner;
public class DadosPessoais{
private String nome,endereco,estadoCivil,nacionalidade,Senha;
public DadosPessoais (String nome, String Senha, String endereco, String nacionalidade, String estadoCivil) {
this.nome = nome;
this.Senha = Senha;
this.endereco = endereco;
this.nacionalidade = nacionalidade;
this.estadoCivil = estadoCivil;
}
public static void MenuAlterar() {
System.out.println("Para alterar o nome diga: 0");
System.out.println("Para alterar a Senha diga: 1");
System.out.println("Para alterar o Endereço diga: 2");
System.out.println("Para alterar Estado Civil diga: 3");
System.out.println("Para voltar ao menu principal digite: -1");
}
public void AlteraDadosPessoais(){
String senhaDeProva;
short escolhaAlterar;
Scanner in = new Scanner(System.in);
System.out.println("Digite sua Senha");
senhaDeProva = new String(in.nextLine());
if(senhaDeProva.equals(this.Senha)){
this.MenuAlterar();
escolhaAlterar = in.nextShort();
while(escolhaAlterar!=-1){
switch (escolhaAlterar) {
case 0: this.nome = new String(in.next());
System.out.println("Alteração feita com sucesso!");
break;
case 1: this.Senha = in.next();
System.out.println("Alteração feita com sucesso!");
break;
case 2: this.endereco = in.next();
System.out.println("Alteração feita com sucesso!");
break;
case 3: this.estadoCivil = in.next();
System.out.println("Alteração feita com sucesso!");
break;
default: System.out.println("Opção inválida");
break;
}
System.out.println();
this.MenuAlterar();
escolhaAlterar = in.nextShort();
}
in.close();
}else{
System.out.println("Senha inválida");
}
in.close();
}
}