Ajuda no código!

Pessoa eu tenho essa questão:

[quote]Faça um Programa para controlar o acesso de pessoas a um restaurante. O restaurante possui uma
capacidade de 40 vagas, que não poderá ser ultrapassada. O controle se dará através de códigos,
conforme a
tabela:
0-FIM
1-ENTRA UMA PESSOA (escrever: ?Entrou?)42
2-SAI UMA PESSOA (escrever: ?Saiu?)
3-MOSTRAR QUANTOS LUGARES ESTÃO DISPONÍVEIS
4-MOSTRAR O TOTAL DE PESSOAS QUE ENTRARAM
5-MOSTRAR O TOTAL DE PESSOAS QUE SAÍRAM
Outro código escrever: ?Código Inválido?[/quote]

O meu código está pela metade e está assim :

[code]import java.util.Scanner;
public class Exercíco2 {
public static void main(String [] args){

	int opcao;
	int vagas=0, entra=0, sai=0;
	int TotalEntra, TotalSai, TotalVagas;
	
	System.out.println("0-FIM");
	System.out.println("1-ENTRADA DE PESSOA");
	System.out.println("2-SAIDA DE PESSOA");
	System.out.println("3-MOSTRAR QUANTIDADE DE VAGAS DISPONIVEIS");
	System.out.println("4-MOSTRAR A QUANTIDADE DE PESSOAS QUE ENTRARAM");
	System.out.println("5-MOSTRAR A QUANTIDADE DE PESSOA QUE SAIRAM");
	System.out.println("\ninforma a opção desejada: ");
	Scanner sc = new Scanner(System.in);
	opcao = sc.nextInt();
	 
	
	switch (opcao) {
	case 1:
		System.out.println("Quantas pessoas estão entrando?");
		entra = sc.nextInt();
		
		System.out.print("Entrou " + entra + " pessoas!" );
		break;
	case 2:
		System.out.println("Quantas pessoas estão saindo?");
		sai = sc.nextInt();
		
		System.out.print("Saiu " + sai + " pessoas!");
		break;
	case 3:
		vagas = entra - sai;
		System.out.println("A quantidade de vagas disponíveis é: " + vagas);
		break;
		
	}
	return;
}

}
[/code]
Está faltando muito coisa eu sei, mais não estou acertando como dar retorno antes do switch e como só finalizar o programa apenas quando informar o “0”

[quote]
int opcao = -1;
int vagas=0, entra=0, sai=0;
int TotalEntra, TotalSai, TotalVagas;

while (opcao != 0) {
System.out.println(“0-FIM”);
System.out.println(“1-ENTRADA DE PESSOA”);
System.out.println(“2-SAIDA DE PESSOA”);
System.out.println(“3-MOSTRAR QUANTIDADE DE VAGAS DISPONIVEIS”);
System.out.println(“4-MOSTRAR A QUANTIDADE DE PESSOAS QUE ENTRARAM”);
System.out.println(“5-MOSTRAR A QUANTIDADE DE PESSOA QUE SAIRAM”);
System.out.println("\ninforma a opção desejada: ");
Scanner sc = new Scanner(System.in);
opcao = sc.nextInt();

    switch (opcao) {  
    case 1:  
        System.out.println("Quantas pessoas estão entrando?");  
        entra = sc.nextInt();  
          
        System.out.print("Entrou " + entra + " pessoas!" );  
        break;  
    case 2:  
        System.out.println("Quantas pessoas estão saindo?");  
        sai = sc.nextInt();  
          
        System.out.print("Saiu " + sai + " pessoas!");  
        break;  
    case 3:  
        vagas = entra - sai;  
        System.out.println("A quantidade de vagas disponíveis é: " + vagas);  
        break;  
    default:
        System.out.println("opção invalida");
    }  

} [/quote]

veja se de resolve

Cristian,
Mais eu fazendo isso o programa ainda continua finalizando!

O código tem que se de acordo com a questão em cima!

E eu não estou conseguindo realizar por conta disso toda vez que eu escolho umas das opções e informo o que ela precisa, ao programa executar e ele finaliza e zera as informações!

meu nome é "Cristian" mais atenção na proxima

[code]
int opcao = -1;
int totalPessoas = 0;

	while (opcao != 0) {
		System.out.println("0-FIM");
		System.out.println("1-ENTRADA DE PESSOA");
		System.out.println("2-SAIDA DE PESSOA");
		System.out.println("3-MOSTRAR QUANTIDADE DE VAGAS DISPONIVEIS");
		System.out
				.println("4-MOSTRAR A QUANTIDADE DE PESSOAS QUE ENTRARAM");
		System.out.println("5-MOSTRAR A QUANTIDADE DE PESSOA QUE SAIRAM");
		System.out.println("\ninforma a opção desejada: ");
		Scanner sc = new Scanner(System.in);
		opcao = sc.nextInt();
		
		int qt = 0;

		switch (opcao) {
		case 1:
			System.out.println("Quantas pessoas estão entrando?");
			qt = sc.nextInt();
			
			totalPessoas += qt;

			if (totalPessoas > 40) {
				System.out.println("Não é possivel a entrada de " + qt + " pessoas agora, " + (totalPessoas - 40) + 
						" pessoas teram que esperar o mesmo número de pessoas sair para que elas entrem.");
				
				totalPessoas -= qt;
			} else {
				System.out.println("Entrou " + qt + " pessoas!");
			}
			
			break;
		case 2:
			System.out.println("Quantas pessoas estão saindo?");
			qt = sc.nextInt();
			totalPessoas -= qt;
			System.out.print("Saiu " + qt + " pessoas!");
			break;
		case 3:
			System.out.println("A quantidade de vagas disponíveis é: "
					+ (40 - totalPessoas));
			break;
		default:
			System.out.println("opção invalida");
		}
	}[/code]

Muito obrigado Cristian!
o que faz ele ficar voltando sempre no código das opções é break; ou o default: ?

O que faz voltar no menu de opções é o porque a variavel opção é diferente e 0…

Isto dentro de um while… o while tem a função de executar uma sequência de comandos enquanto a condição entre parenteres for verdade.

O [color=darkblue]break [/color] é para quando entrar em um dos cases, não ter que percorrer os outros.
O [color=darkblue]default[/color] é caso não entre em nenhum dos cases, faça aquilo por default.

O que faz ficar voltando é o [color=darkblue]while[/color].

while (opcao != 0) { //Enquanto a opção digitada for diferente de 0 ...

[quote=michetti]O que faz voltar no menu de opções é o porque a variavel opção é diferente e 0…

Isto dentro de um while… o while tem a função de executar uma sequência de comandos enquanto a condição entre parenteres for verdade.[/quote]

Muito obrigado!
Isso clareou bem e matou definitivamente a minha duvida!

[quote=ErickRAR]O [color=darkblue]break [/color] é para quando entrar em um dos cases, não ter que percorrer os outros.
O [color=darkblue]default[/color] é caso não entre em nenhum dos cases, faça aquilo por default.

O que faz ficar voltando é o [color=darkblue]while[/color].

while (opcao != 0) { //Enquanto a opção digitada for diferente de 0 ...

[/quote]

Muito obrigado pela explicação Erick!