Duvida no While

Bom pessoal minha duvida é a seguinte , estou fazendo um programa simulando um banco , só que sabe quando vocs vão no banco finalizam o que vocs então fazendo e VOLTAM pra o inicio , entao eu fiz um while para voltar só que nao conssigo voltar porque nao coloquei coisas no while , e não sei o que poe. O programa é execultado em 5 classes mas eu vou passar apenas o código aqui.

Obrigado a todos , voltar é a opçao 4

[code]import java.util.Scanner;

class TesteContas {
public static void main(String [] args){
Conta c = new Conta();
ContaCorrente cc = new ContaCorrente();
ContaPoupanca cp = new ContaPoupanca();
ContaConjunta cj = new ContaConjunta();

	String digite;
	int Flat=0;
	
	
	Scanner S = new Scanner(System.in);
	
    System.out.println("Digite sua senha para iniciarmos a seção ");
	digite = S.nextLine();
	int q = Integer.parseInt(digite);
    
    //while (){
    

	if(q == 123) {
	
	System.out.println(" ######################");
	System.out.println(" # Bem Vindo ao Banco # ");
	System.out.println(" ######################\n\n\n\n\n");
	System.out.println("Voce deseja acessar sua Conta Corrente , Poupança ou Conjunta ? ");
	System.out.println("1) Conta Corrente ");
	System.out.println("2) Conta Poupança ");
	System.out.println("3) Conta Conjunta \n\n\n\n ");
	digite = S.nextLine();
	int a = Integer.parseInt(digite);
	
	if (a == 1) {
	System.out.println("Bem Vindo a sua Conta Corrente , digite para prosseguir \n ");
	System.out.println("Bem vindo ao menu principal, digite o numero da opção para seguir:");
	System.out.println(" ################");
	System.out.println(" # 1) Saldo 	#");
	System.out.println(" # 2) Depósito 	#");
	System.out.println(" # 3) Saque 	#");
	System.out.println(" # 4) Voltar    #");
	System.out.println(" ################\n\n");
    digite = S.nextLine();
    int e = Integer.parseInt(digite);
    
    if(e == 1) { 
		System.out.println("Seu saldo é: " + cc.getSaldo());
		
	}
	
	
	if(e == 2){
		System.out.println("Quanto deseja depositar ?");
		digite = S.nextLine();
		double deposito = Double.parseDouble(digite); 
		cc.deposita(deposito);
		System.out.println("Seu saldo atualmente é " + cc.getSaldo() + " reais"); 
		
	}
	
	if(e == 3) {
	    System.out.println("Quanto deseja sacar ? ");
	    digite = S.nextLine();
	    System.out.println("Digite sua senha por favor ");
	    digite = S.nextLine();
	    int r = Integer.parseInt(digite);
	    if(r == 123){
		double sacar = Double.parseDouble(digite); 
		cc.saca(sacar);
	    System.out.println("Seu saldo atualmente é " + cp.getSaldo());
	}
	else{
		System.out.println("Senha incorreta.");
	}
	    
	
	}
    
    while(e == 4){
		System.out.println("Deseja voltar ao menu de contas ?");
		digite = S.nextLine();
		
	} 
    	 
	}
	
	if (a == 2){
		System.out.println("Bem Vindo a sua Conta Poupança , digite para prosseguir \n ");
	System.out.println("Bem vindo ao menu principal, digite o numero da opção para seguir:");
	System.out.println(" ################");
	System.out.println(" # 1) Saldo 	#");
	System.out.println(" # 2) Depósito 	#");
	System.out.println(" # 3) Saque 	#");
	System.out.println(" # 4) Volar     #");
	System.out.println(" ################\n\n");
    digite = S.nextLine();
    int b = Integer.parseInt(digite);
    
    if(b == 1) { 
		System.out.println("Seu saldo é: " + cp.getSaldo());
		
	}
	
	
	if(b == 2){
		System.out.println("Quanto deseja depositar ?");
		digite = S.nextLine();
		double deposito = Double.parseDouble(digite); 
		cp.deposita(deposito);
		System.out.println("Seu saldo atualmente é " + cp.getSaldo() + " reais"); 
		
		
	}
	
	if(b == 3) {
	    System.out.println("Quanto deseja sacar ? ");
	    digite = S.nextLine();
	    System.out.println("Digite sua senha por favor ");
	    digite = S.nextLine();
	    int k = Integer.parseInt(digite);
	    if(k == 123){
		double sacar = Double.parseDouble(digite); 
		cp.saca(sacar);
	    System.out.println("Seu saldo atualmente é " + cp.getSaldo());
	}
	else{
		System.out.println("Senha incorreta.");
	}
	
	}
	while (b ==4){
		System.out.println("Deseja voltar ao menu de contas ?");
		digite = S.nextLine();
	}
		
	}	
	
	if(a == 3) {		
	
	System.out.println("Bem vindo ao menu principal,da sua Conta Conjunta");
	System.out.println(" ################");
	System.out.println(" # 1) Saldo 	#");
	System.out.println(" # 2) Depósito 	#");
	System.out.println(" # 3) Saque 	#");
	System.out.println(" # 4) Voltar     #");
	System.out.println(" ################\n\n");
    digite = S.nextLine();
    
    int v = Integer.parseInt(digite);
	
	if(v == 1) { 
		System.out.println("Seu saldo é: " + cj.getSaldo() + " reais");
		
	}
	
	
	if(v == 2){
		System.out.println("Quanto deseja depositar ?");
		digite = S.nextLine();
		double deposito = Double.parseDouble(digite); 
		cj.deposita(deposito);
		System.out.println("Seu saldo atualmente é " + cj.getSaldo() + " reais"); 
		 
		
	}
	
	if(v == 3) {
	    System.out.println("Quanto deseja sacar ? ");
	    digite = S.nextLine();
	    System.out.println("Digite sua senha por favor ");
	    digite = S.nextLine();
	    int p = Integer.parseInt(digite);
	    if(p == 123){
		double sacar = Double.parseDouble(digite); 
		cj.saca(sacar);
	    System.out.println("Seu saldo atualmente é " + cp.getSaldo());
	}
	else{
		System.out.println("Senha incorreta.");
	}
	   
	
	}
	while (v == 4){
		System.out.println("Deseja voltar ao menu de contas ?");
		digite = S.nextLine();
	}
}

}

else {
System.out.println(“Sua senha esta incorreta , tente novamente.”);
}

	/*
	cc.atualiza(0.01);
	cp.atualiza(0.1);
	cj.atualiza(0.001);*/
	


}

}
[/code]

Cria um método pra botar todo esse menu ai. Por exemplo menuBanco()
no final do método, chama ele novamente caso o cliente queira voltar ao menu.

Ou faz um ao redor disso tudo mesmo. E se a opção do cliente for sair, da um break no while.