Após o desafio de um projeto proposto pela professora, resolvi sem consultar os vídeos de apoio fazer o meu próprio, gostaria da opinião de vocês para saber se está ruim, bom, ok ou se pode melhorar. Ficarei grato.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// Temos 6 variaveis, 3 sem inicialização e 3 com inicialização.
// Coletamos so dados, tipo da conta e capturamos o que o usuário digita.
String name;
String typeAccount;
double valueAccount = 0;
Scanner reading = new Scanner(System.in);
String treatment;
boolean menuOptions = true;
System.out.println("Informe seu nome: ");
name = reading.nextLine();
System.out.println("Informe o tipo de sua conta bancária: ");
typeAccount = reading.nextLine();
// While para sempre que a condição de menuOptions for verdadeira, aparecer para o usuário transitar pelas funcionalidades
while(menuOptions){
// Apresenta de forma organizada os dados
String infos = String.format("""
Nome: %s,
Tipo da conta: %s,
Saldo da conta: %.2f
""", name, typeAccount, valueAccount);
// Imprime as informações do usuário
System.out.println(infos);
// O menu de operações disponiveis para fazer uso
System.out.println("""
Operações:
1- Consulta de Saldos.
2- Receber valor.
3- Transferência de valor.
4- Sair.
Digite a opção desejada:
""");
// Leitura da opção que o usuario deseja para utilizarmos no switch
int typeFunctionality = reading.nextInt();
switch (typeFunctionality) {
case 1:
// Apenas mostra o saldo da conta
System.out.println("Seu saldo é de: " + valueAccount);
break;
case 2:
//Pergunta o valor que o cliente deseja receber, captura esse valor, apresenta ele numa condicional if para verificar se é maior que 0 para ai sim adicionar a conta o valor desejado
System.out.println("Digite o valor que você deseja receber.");
double valueAdd = reading.nextDouble();
if (valueAdd > 0) {
double newValue = valueAccount += valueAdd;
System.out.println("Você recebeu: " + valueAdd + " na sua conta, seu novo saldo é de: " + newValue);
}
break;
case 3:
// Captura o valor desejado de transferencia, checa se o valor é maior que o saldo, se sim, impede a transferencia, se não, subtrai o valor e apresenta o saldo novo e o valor retirado da conta
System.out.println("Digite o valor que deseja transferir: ");
double valueTransfer = reading.nextDouble();
if (valueTransfer > valueAccount) {
System.out.println("Não é possível transferir um valor maior do que possuí em conta");
} else {
double newValueTransfer = valueAccount -= valueTransfer;
System.out.println("Você transferiu: " + valueTransfer + " seu saldo é de: " + newValueTransfer);
}
break;
case 4:
// Transforma a variavel de menuOptions em false para que o menu seja fechado.
System.out.println("Saindo, até mais...");
menuOptions = false;
break;
default:
// Caso seja algo fora dos cases, ele retorna informa que não há essa opção e retorna ao menu
treatment = "Operação inválida.";
System.out.println(treatment);
break;
}
}
}
}