Não testei mais acho que são seus BREAK se você rodar e ele sair do programa é certeza que é os BREAK tira fora.
Felipe_Miranda
Fiz algumas mudanças e comentários no seu código, não aprofundei nas melhorias por que o intuito não é esse, tendo dúvidas só postar certo? abraços
*Detalhe importante, estude sobre colisões em posições de array, seu algoritmo esta travado quando a isso e vai dar erro.
*Outro detalhe é que após você entender colisões e como tratar, você deve inserir elementos na sua matriz em posições de forma dinâmica e não fixa como fez, quando coloca isso: matriz[i][0]
*Deixei o código comentando um pouco para seu entendimento
boa sorte…
publicclassEstacionamento{publicstaticvoidmain(String[]args){MenuEstacionamento();}staticvoidMenuEstacionamento(){Objectmatriz[][]=newObject[10][4];Scannerinput=newScanner(System.in);System.out.println("Iniciando");booleanflag=true;intopcao;while(flag){System.out.println("Opcoes");System.out.println("1 - Cadastrar vaga");System.out.println("2 - Encerrar vaga");System.out.println("0 - Sair");System.out.print("Informe a opcao desejada: ");opcao=input.nextInt();switch(opcao){case1:{CadastrarVaga(matriz);break;}case2:{ListarVagas(matriz);break;}case0:{flag=false;break;}default:{System.out.println("Opcao invalida");break;}}}input.close();}staticvoidListarVagas(Objectmatriz[][]){;for(inti=0;i<10;i++){for(intj=0;j<3;j++){System.out.println("Vaga: "+(i+1)+" Placa: "+matriz[i][0]);}}}staticvoidCadastrarVaga(Objectmatriz[][]){Scannerinput=newScanner(System.in);for(inti=0;i<10;i++){for(intj=0;j<2;j++){if(matriz[i][0]==null){System.out.println("Vaga "+(i+1)+" disponivel");System.out.print("Informe sua placa: ");matriz[i][0]=input.next().toUpperCase();}elseif(matriz[i][1]==null){//Aqui coloquei a informação da hora em uma posição vazia da matriz checando colisão(bem simples você deve aprimorar)//para isso foi usado while (Você não estava fazendo nada após o system.out.println. de Informe a horaSystem.out.print("Informe a hora: ");booleanhoraCadastrada=false;intposicao=1;while(!horaCadastrada&&matriz[i+posicao++][i]==null){matriz[i][i]=input.next().toUpperCase();horaCadastrada=true;}}}//TODO Avalie este trecho de código//Pergunta: Qual o intuito do fluxo do sistema solicitar se quer continuar ou não?//Consideração: Você deve voltar ao menu principal após realizar a operação de cadastrar vaga ou //usuário permanecer cadastrando novas vagas (faria mais sentindo) //para isso seu metódo teria de ser recursivo ou implementa-lo usando while/* FIXME Trecho comentando - Revisar int opcao; System.out.println("Opcoes"); System.out.println("1 - continuar"); opcao = input.nextInt(); if (opcao == 1) { continue; } else { break; }*///TODO Nova implementação - Avalie e mude oque julgar necessário a te ajudar.booleancadastrarVagas=false;while(!cadastrarVagas){System.out.print("\nCadastrar mais vagas? [Sim] - [Não]: ");Stringcadastrar=input.next().toUpperCase();//Validando null pointif(cadastrar!=null){//Verificando variações da opção nãoif("Não".toUpperCase().equals(cadastrar.toUpperCase())||"N".toUpperCase().equals(cadastrar.toUpperCase())||"Nao".toUpperCase().equals(cadastrar.toUpperCase())){//Como o usuário informou que não quer cadastrar mais vagas (volta ao menu principal) System.out.print("\n");MenuEstacionamento();//Verificando variações da opção sim}elseif("Sim".toUpperCase().equals(cadastrar.toUpperCase())||"S".toUpperCase().equals(cadastrar.toUpperCase())){//Como ele deseja cadastrar novas vagas, então chama-se o metódo novamente para cadastrar vagas.System.out.print("\n");CadastrarVaga(matriz);}else{//Caso não digite uma opção válida ficará enternamente no loop while.System.out.print("Opção invalida.");}cadastrar=null;}}}input.close();}}