Problemas com Control Flow (Loop)

Olá pessoal,

Estou criando um programa simulando um caixa eletronico enquanto estudo control flow porque, sabe como é né, a prática que faz a experiência! :-o

Criei um programinha que tem 2 métodos, o Intro(); e o Saque();

Quando a intro é executada, um dos métodos possíveis a ser chamado pelo usuário é o saque.
Tudo roda normal da primeira vez, mas quando a Intro(); é executada novamente no final da operação de saque,
todos os métodos possíveis de ser invocados (Saque, Extrato, etc…) qualquer opção que se digite, o programa é finalizado
com sucesso :x

Vou colar só uma parte do código pra nao ficar cansativo para os amigos!
Quem puder ajudar ae fico grato!
[]'s

[code]
import java.util.Scanner;

public class Switchandloopsimproved {

static byte a, l, i;
static short m, saldo = 5000;

public static void main(String[] args) {
    Intro();
    IfIntro();




}

public static byte Intro() {
    Scanner intra = new Scanner(System.in);
    System.out.printf("Bem-Vindo ao caixa eletrônico do Banco do Brasil");
    System.out.println("\n");
    System.out.println("Escolha a sua Opção");
    System.out.println("\n");
    System.out.println("1 - Extrato");
    System.out.println("2 - Saque");
    System.out.println("3 - Empréstimo");
    System.out.println("4 - Fatura Cartão BB");
    return a = intra.nextByte();
}

public static void IfIntro(){
    if (a == 1)
        Extrato();
    else if (a == 2)
        Saque();
    else if (a == 3)
        Emprestimo();
    else{
        System.out.println("Escolha Inválida\nTente Novamente\n");
        Intro();}
}


public static void Saque() {
    Scanner sac = new Scanner(System.in);
    int[] anArray;
    anArray = new int[10];
    int c = 1, d = 25;
    byte e,x;
    anArray[c] = d;
    System.out.println("Escolha o Valor a ser Sacado");
    System.out.println(c + "  ---  R$"+ d);

    do {
        ++c;
        d += 25;
        anArray[c] = d;
        System.out.println(c + "  ---  R$" + d);
    } while (d == 25);


    do {
        ++c;
        d += 50;
        anArray[c] = d;
        System.out.println(c + "  ---  R$" + d);
    } while (d >= 50 && d < 199);


    do {
        ++c;
        d += 200;
        anArray[c] = d;
        System.out.println(c + "  ---  R$" + d);
    } while (d >= 200 && d < 1000);

    e = sac.nextByte();
    saldo -= anArray[e];
    System.out.println("Saque no valor de R$" + anArray[e] + "\nAguarde...\n");
    System.out.println("Operação Concluída com Sucesso");
    System.out.println("Deseja efetuar mais alguma operação?");
    System.out.println("1 --- Sim\n2 --- Não");
    x = sac.nextByte();
    if (x == 1)
        Intro();
    else if (x == 2){
        System.out.println("Obrigado por usar os nossos serviços");
        System.exit(0);
    }

}[/code]

Você precisa usar um loop para que o programa exiba o menu novamente várias vezes até encerrar. no método main do seu programa você chama apenas o método Intro()

Fica assim o código

public static void Intro() {  
        Scanner intra = new Scanner(System.in);  
        
          do{
                
                System.out.printf("Bem-Vindo ao caixa eletrônico do Banco do Brasil");  
                System.out.println("\n");  
                System.out.println("Escolha a sua Opção");  
                System.out.println("\n");  
                System.out.println("1 - Extrato");  
                System.out.println("2 - Saque");  
                System.out.println("3 - Empréstimo");  
                System.out.println("4 - Fatura Cartão BB");
                System.out.println("5 - Sair do sistema");
 
                 a = intra.nextByte();
                 IfIntro();

         }while(a!=5);
    }  
  
    public static void IfIntro(){  
        if (a == 1)  
            Extrato();  
        else if (a == 2)  
            Saque();  
        else if (a == 3)  
            Emprestimo();  
        else{  
            System.out.println("Escolha Inválida\nTente Novamente\n");  
            Intro();}  
    }  

Oi Rafael,

Vlw pela tentativa, mas nao deu certo. Eu até usei o Do While no restante do meu código e dá tudo certo, só que quando precisa repetir o método Intro() de novo, ele escreve tudo de novo certinho, mas na hora de chamar os métodos ele simplesmente encerra o programa como “Concluído com Sucesso”.
Já dei uma quebrada na cabeça e nao consegui matar essa ainda… quem puder ajudar ae fico grato.

vlwz!

Nos métodos em vez de encerrar o programa chame novamente a função Intro() no final de cada um deles. faça isso em todos os métodos como depósito, extrato, transferencia, etc.