Skip to content

Instantly share code, notes, and snippets.

@luizpicolo
Created August 30, 2023 19:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save luizpicolo/74321ac627d6cdd2ec2883040aff7c17 to your computer and use it in GitHub Desktop.
Save luizpicolo/74321ac627d6cdd2ec2883040aff7c17 to your computer and use it in GitHub Desktop.
const readline = require('readline');
function ContaBancaria() {
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let opcao;
let saldo = 0;
const menu = () => {
console.log("Escolha uma opção:");
console.log("1 - Depósito");
console.log("2 - Saque");
console.log("3 - Transferência");
console.log("4 - Saldo");
console.log("0 - Sair");
};
const realizarDeposito = () => {
rl.question("Digite o valor do depósito: ", (valor) => {
const deposito = parseFloat(valor);
saldo += deposito;
menu();
escolherOpcao();
});
};
const realizarSaque = () => {
rl.question("Digite o valor do saque: ", (valor) => {
const saque = parseFloat(valor);
if (saque <= saldo) {
saldo -= saque;
} else {
console.log("Saldo insuficiente");
}
menu();
escolherOpcao();
});
};
const realizarTransferencia = () => {
rl.question("Digite o valor da transferência: ", (valor) => {
const transferencia = parseFloat(valor);
if (transferencia <= saldo) {
rl.question("Digite o número da conta de destino: ", (contaDestino) => {
console.log("Transferência realizada com sucesso");
saldo -= transferencia;
menu();
escolherOpcao();
});
} else {
console.log("Saldo insuficiente");
menu();
escolherOpcao();
}
});
};
const consultarSaldo = () => {
console.log("Saldo: " + saldo);
menu();
escolherOpcao();
};
const escolherOpcao = () => {
rl.question("Escolha uma opção: ", (op) => {
opcao = parseInt(op);
switch (opcao) {
case 1:
realizarDeposito();
break;
case 2:
realizarSaque();
break;
case 3:
realizarTransferencia();
break;
case 4:
consultarSaldo();
break;
case 0:
console.log("Saindo...");
rl.close();
break;
default:
console.log("Opção inválida");
menu();
escolherOpcao();
}
});
};
menu();
escolherOpcao();
}
ContaBancaria();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment