1
resposta

[Dúvida] duvida while

Usei meu while dessa maneira while(true) colocando quando ele seleciona o numero 4 o codigo - System.exit(0), pode ser tambem? Segue meu codigo do while

package desafioalurajava1;
import java.util.Scanner;
public class desafio {

    public static void main(String[] args) {
        Scanner leitura = new Scanner(System.in);
        double saldo = 2500, saldoMais,saldoMenos;
        int escolha;
        System.out.println("Seu saldo inicial é:R$"+saldo);
        while(true) { 
        System.out.println("1 - Consultar dados\n2- Receber Valor\n3- Transferir valor\n4- Sair");
        System.out.println("Qual operação deseja fazer?");
        escolha=leitura.nextInt();
        switch (escolha) {

        case 1:
            System.out.println("Seu saldo atual é:R$"+saldo);
            break;

        case 2:
            System.out.println("Deseja receber quanto? ");
            saldoMais=leitura.nextDouble();
            saldo = saldo + saldoMais;
            break;

        case 3:
            System.out.println("Deseja transferir quanto? ");
            saldoMenos=leitura.nextDouble();
            if (saldoMenos<=saldo) {
                saldo = saldo - saldoMenos;
            }else {
                System.out.println("Você não pode transferir mais do que possui!");
            }break;

        case 4:
            System.out.println("Você saiu!!");
            System.out.println("Seu saldo ficou:R$"+saldo);
            leitura.close();//fechar o scanner para que não cometa vazamentos de dados
            System.exit(0);//para sair do programa
            break;

        default:
            System.out.println("Opção invalida, use do 1 ao 4!!");
            break;
        }
        }



    }

}
1 resposta

Fala João, de boa ?

Cara legal que tu conseguiu achar outra forma de fazer, dessa forma tu acaba aumentando teu leque de opções =)

Essa forma que tu fez pode ser um pouquinho chata em alguns cenários, por conta do System.exit(0);, que meio que mata a jvm. Nesse caso que tu fez super de boa fazer algo assim, num caso mais complexo tenta usar a boa e velha flag que indica que está rodando/deveriaRodar:

boolean sistemaDeveEstarRodando = true;

while(sistemaDeveEstarRodando) {
// logicas

// logica que para o sistema:
sistemaDeveEstarRodando = false;

}