Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Problemas com switch()

Eu estou rodando esse código varias vezes mas não estou conseguindo tirar nenhum output das opções, alguém ajuda?

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

    public static void main(String[] args) throws IOException {
        String nome = "Guilherme";
        int numBanco = 6257;
        int numAgencia = 8789;
        double saldo = 0;

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        System.out.println("ATM");
        System.out.println("1 - ver dados da sua conta");
        System.out.println("2 - adicionar saldo");
        System.out.println("3 - retirar saldo");
        System.out.println("4 - SAIR");
        int option = br.read();

        switch(option) {
            case 1:
                System.out.println("Usuario da conta: " + nome);
                System.out.println("Numero do banco: " + Integer.toString(numBanco));
                System.out.println("Numero da agencia: " + Integer.toString(numAgencia));
                System.out.println("Saldo total na conta: " + Double.toString(saldo));
                break;
            case 2:
                System.out.print("Escreva a quantidade a ser adicionada: ");
                double add = br.read();
                saldo += add;
                System.out.println("A quantia foi adicionada com sucesso");
                break;
            case 3:
                System.out.print("Escreva a quantidade a ser retirada: ");
                double min = br.read();

                if(min > saldo) {
                    System.out.println("Nao eh possivel retirar essa quantidade, pois ela eh maior que o saldo na conta");
                } else {
                    saldo -= min;
                    System.out.println("Quantia retirada com sucesso");
                }
            case 4:
                br.close();
                System.out.println("Saindo...");
                break;
        }


    }

}
1 resposta
solução!

Olá!

O problema está na linha int option = br.read();, mais especificamente no uso do método read(). Este método lê um caractere char e devolve um int que é a representação desse char na tabela ASCII.

Por exemplo, coloque um System.out.println("option: "+option); logo depois desse read() e veja que, se você inputar o número um (1), por exemplo, sua variável option receberá na verdade o valor 49!

O que você quer, na verdade, é escrever algo assim:

int option = Integer.parseInt(br.readLine());

Assim, o readLine() interpretará o seu input como uma String e você alimentará essa string ao método Integer.parseInt(String) para então ter o intque você inputou!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software