Case

Pessoal tenho um dúvida, bem simples, mas ta me deixando irritato! :roll:

tenho a seguinte entrutura:

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;


public class Principal{

	  /**  
     * @param args  
     */   
    public static void main(String[] args) {
    	
        Grafo grafo = new Grafo();
        List<Map> result = new ArrayList<Map>();
        List<Map> estrutura = new ArrayList<Map>();
        int count = 0;
        
    	Scanner scan = new Scanner( System.in);
    	
    	int opcao;

    try {
    	
       System.out.print("Bem vindo!" + "\n" );  
       System.out.print("Digite a opção que deseja:" + "\n" );  
       System.out.print("(1) - Inserir:" + "\n" );  
       System.out.print("(2) - Imprimir:" + "\n" );
       System.out.print("(3) - Deletar:" + "\n" );
       System.out.print("(4) - Sair" + "\n" );  
       
       opcao = scan.nextInt(); 
       
       int scanOrigem = 0;
       int scanDestino = 0;
       int scanCusto = 0;
    
       while (opcao !=4) {  
 
           switch (opcao) {  
           	case 1:
           		System.out.printf("insira o origem ");
           		scanOrigem = scan.nextInt();

           		if( scanOrigem == 0) {
           			System.out.println(grafo.getOrigem() + "Origem inválida! Insira novamente!");
           			break;
           		}else {
           			grafo.setOrigem(scanOrigem);
           			int guardoOrig = grafo.getOrigem();
           			System.out.println("[" +guardoOrig +"]" + " Origem inserida com sucesso!");
           		}
	
           		System.out.printf("insira o destino ");
           		scanDestino = scan.nextInt();
	
           		if(scanDestino == scanOrigem || scanDestino == 0) {
           			System.out.println("Destino invalido");
           			break;
           		} else {
           			grafo.setDestino(scanDestino);
           			int guardoDest = grafo.getDestino();
           			System.out.println("[" +guardoDest +"]" + " Destino inserido com sucesso!");
           		}
	
           		System.out.printf("insira o custo ");
           		scanCusto = scan.nextInt();
           		grafo.setCusto(scanCusto);
           		int guardoCusto = grafo.getCusto();
           		System.out.println("[" +guardoCusto +"]"+ "Custo atribuido com sucesso!");
           		
           		HashMap<String, Integer> vertice = new HashMap<String, Integer>();
    			vertice.put("origem:", grafo.getOrigem());
    			vertice.put("destino:", grafo.getDestino());
    			vertice.put("custo:", grafo.getCusto());
    			count = count + 1;
    			result.add(vertice);
           			
       			System.out.println("\n");
				System.out.println("#################################");
				System.out.println("Imprimindo estrutura.");
				System.out.println("[" + count + result + "]");
				break;

           	case 2:
           		if (scanOrigem == 0) {
           			System.out.println("Grafo vazio!");
           			break;
           		}else {
           		System.out.println("\n");
				System.out.println("#################################");
				System.out.println("Imprimindo estrutura.");
				System.out.println("[" + count + result + "]");
				break;
				}

           	case 3:
           		scan.remove();
           		break;
           	default:
					System.out.println("Erro! opção inválida!");
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

Como faço pra depois de terninar o case voltar para o menu de opções?

Da forma que ta depois de inserir os dados, imprime e encerra o case.

Vlwwwww! :lol:

Ponha o menu dentro do while.

Coloque ele dentro de um loop.

Exemplo:

variavel booleana = true;
do {
    switch (valor)
        //aqui você altera a variavel booleana caso ele escolha uma opção de sair
} while (variavel booleana);

è só pegar o seu menu e colocar no final do seu while

while (opcao != 4){
...

 System.out.print("Bem vindo!" + "\n" );    
 System.out.print("Digite a opção que deseja:" + "\n" );    
 System.out.print("(1) - Inserir:" + "\n" );    
 System.out.print("(2) - Imprimir:" + "\n" );  
 System.out.print("(3) - Deletar:" + "\n" );  
 System.out.print("(4) - Sair" + "\n" );    
 opcao = scan.nextInt();
}

pois é pessoal so que qdo eu termino de inserir a opção q foi escolhida continua, por exemplo:

se for escolido a primeira opção, qdo terminar de inserir o cursor ainda vai continuar pedinto para inserir, eu quero q volte patara o menu.

N sei se fui claro!

:lol:

Lápis e papel são seus amigos. Desenhe um fluxograma, e implemente isso com ifs e whiles.

Coloque seu menu no corpo do loop e depois faça o switch, se voltar ao switch voltará antes ao menu.