Ajuda: Não esta imprimindo o que ta no else

Não esta imprimindo o que ta no else, na hora que seleciono uma cabine inexistente ou ocupada. Alguém pode me ajudar?

package br.raphaelligabriel.model;

import java.util.Scanner;

/**
*

  • @author Raphaelli
    */
    public class Programa {
    public static void main(String[] args) {
    Scanner teclado = new Scanner(System.in);
    int opt1, opt2, opt3 = 0;
    int cabineSelecionada;

     Viagem viagem = new Viagem();
     viagem.setDestino("Barcelona");
     viagem.setPreco(3000);
     viagem.setData("11/11/2018");
     viagem.setOrigem("Santos");
     viagem.setHoraPartida("10:00");
     
     Transatlantico transatlantico = new Transatlantico();
     transatlantico.setNome("Gran Voyages");
     viagem.setTransatlantico(transatlantico);
     
     for(int i = 1; i <= 50; i++){
         Economica economica = new Economica();
         economica.setPreco(0);
         economica.setNumero(i);
         economica.setAndar("1º Andar");
         transatlantico.addCabineEconomica(economica);
     }
     
     for(int i = 1; i <= 30; i++){
         Executiva executiva = new Executiva();
         executiva.setPreco(500);
         executiva.setNumero(i);
         executiva.setAndar("2º Andar");
         transatlantico.addCabineExecutiva(executiva);
     }
     
     for(int i = 1; i <= 10; i++){
         Premium premium = new Premium();
         premium.setPreco(1000);
         premium.setNumero(i);
         premium.setAndar("3º Andar");
         transatlantico.addCabinePremium(premium);
     }
     
     /*
     TESTE
     
     System.out.println("Transatlantico " + transatlantico.getNome());
     
     for(int i = 0; i < 3; i++){
         transatlantico.getListaCabinesEconomicas().get(i).setOcupada(true);
         transatlantico.getListaCabinesExecutivas().get(i).setOcupada(true);
         transatlantico.getListaCabinesPremium().get(i).setOcupada(true);
     }
     
     
     System.out.println("ECO vagas: " + transatlantico.mostrarVagasCabinesEconomicas() + "Preco: " + transatlantico.getListaCabinesEconomicas().get(0).getPreco());
     System.out.println("EXE vagas: " + transatlantico.mostrarVagasCabinesExecutivas() + "Preco: " + transatlantico.getListaCabinesExecutivas().get(0).getPreco());
     System.out.println("PRE vagas: " + transatlantico.mostrarVagasCabinesPremium() + "Preco: " + transatlantico.getListaCabinesPremium().get(0).getPreco());
     */
     
     
     do{
         System.out.println("\n##### GRAN VOYAGES #####");
         System.out.println("1- Vender Pacote");
         System.out.println("2- Mostrar quantidade de pacotes vendidos");
         System.out.println("3- Mostrar cabines vagas");
         System.out.println("4- Mostrar rendimento da viagem");
         System.out.println("5- Sair");
         opt1 = teclado.nextInt();
         if(opt1 == 1){
             
             Familia familia = new Familia();
             
             System.out.println("\n##### " + viagem.getOrigem() +" - " + viagem.getDestino() + " #####");
             System.out.println("Horário de embarque: " + viagem.getHoraPartida() + "\t" + viagem.getData());
             System.out.println("Valor: a partir de R$ " + viagem.getPreco());
    
             
             System.out.println("\n##### TIPOS DE CABINES #####");
             if(transatlantico.mostrarVagasCabinesEconomicas() > 0){
                 System.out.println("1- Econômica - Acréscimo R$" + transatlantico.getListaCabinesEconomicas().get(0).getPreco());
             }
             if(transatlantico.mostrarVagasCabinesExecutivas() > 0){
                 System.out.println("2- Executiva - Acréscimo R$" + transatlantico.getListaCabinesExecutivas().get(0).getPreco());
             }
             if(transatlantico.mostrarVagasCabinesPremium() > 0){
                 System.out.println("3- Premium - Acréscimo R$" + transatlantico.getListaCabinesPremium().get(0).getPreco());
             }
             opt2 = teclado.nextInt();
    
             if(opt2 == 1){
                 double precoTotal = viagem.getPreco() + transatlantico.getListaCabinesEconomicas().get(0).getPreco();
                 System.out.println("Valor total: R$" + precoTotal); 
                 
                 System.out.println("Deseja confirmar compra? 1- Sim\t2- Não");
                 opt3 = teclado.nextInt();
                 if(opt3 == 1){
                     System.out.println("DIGITE O NÚMERO DA CABINE QUE DESEJA VENDER: ");
                     System.out.println("##### CABINES ECONÔMICAS VAGAS #####");
                     for(int i = 0; i < transatlantico.getListaCabinesEconomicas().size(); i++){
                         if(!transatlantico.getListaCabinesEconomicas().get(i).isOcupada()){
                             System.out.println(transatlantico.getListaCabinesEconomicas().get(i).getNumero());
                         }
                     }
                     cabineSelecionada = teclado.nextInt();
                     for(int i = 0; i < transatlantico.getListaCabinesEconomicas().size(); i++){
                         if(transatlantico.getListaCabinesEconomicas().get(i).getNumero() == cabineSelecionada){
                             if(!transatlantico.getListaCabinesEconomicas().get(i).isOcupada()){
                                 transatlantico.getListaCabinesEconomicas().get(i).setOcupada(true);
                                 transatlantico.getListaCabinesEconomicas().get(i).setFamilia(familia);
                                 //familia.setCabine(transatlantico.getListaCabinesEconomicas().get(i));
                             }else{
                                 System.out.println("Cabine indisponível");
                             }
                             
                         }else{
                             System.out.println("Cabine indisponível");
                         }
                     } 
                     
                     //TESTE
                     for(int i = 0; i < transatlantico.getListaCabinesEconomicas().size(); i++){
                         if(!transatlantico.getListaCabinesEconomicas().get(i).isOcupada()){
                             System.out.println(transatlantico.getListaCabinesEconomicas().get(i).getNumero());
                         }
                     }
                 }
             }
             else if(opt2 == 2){
                 double precoTotal = viagem.getPreco() + transatlantico.getListaCabinesExecutivas().get(0).getPreco();
                 System.out.println("Valor total: R$" + precoTotal); 
                 
                 System.out.println("Deseja confirmar compra? 1- Sim\t2- Não");
                 opt3 = teclado.nextInt();
                 if(opt3 == 1){
                     System.out.println("DIGITE O NÚMERO DA CABINE QUE DESEJA VENDER: ");
                     System.out.println("##### CABINES EXECUTIVAS VAGAS #####");
                     for(int i = 0; i < transatlantico.getListaCabinesExecutivas().size(); i++){
                         if(!transatlantico.getListaCabinesExecutivas().get(i).isOcupada()){
                             System.out.println(transatlantico.getListaCabinesExecutivas().get(i).getNumero());
                         }
                     }
                     cabineSelecionada = teclado.nextInt();
                     for(int i = 0; i < transatlantico.getListaCabinesExecutivas().size(); i++){
                         if(transatlantico.getListaCabinesExecutivas().get(i).getNumero() == cabineSelecionada){
                             if(!transatlantico.getListaCabinesExecutivas().get(i).isOcupada()){
                                 transatlantico.getListaCabinesExecutivas().get(i).setOcupada(true);
                                 transatlantico.getListaCabinesExecutivas().get(i).setFamilia(familia);
                                 //familia.setCabine(transatlantico.getListaCabinesExecutivas().get(i));
                             }else{
                                 System.out.println("Cabine indisponível");
                             }
                             
                         }else{
                             System.out.println("Cabine indisponível");
                         }
                     } 
                     
                     //TESTE
                     for(int i = 0; i < transatlantico.getListaCabinesExecutivas().size(); i++){
                         if(!transatlantico.getListaCabinesExecutivas().get(i).isOcupada()){
                             System.out.println(transatlantico.getListaCabinesExecutivas().get(i).getNumero());
                         }
                     }
                     
                 } 
             }else if(opt2 == 3){
                 double precoTotal = viagem.getPreco() + transatlantico.getListaCabinesPremium().get(0).getPreco();
                 System.out.println("Valor total: R$" + precoTotal); 
                 
                 System.out.println("Deseja confirmar compra? 1- Sim\t2- Não");
                 opt3 = teclado.nextInt();
                 if(opt3 == 1){
                     System.out.println("DIGITE O NÚMERO DA CABINE QUE DESEJA VENDER: ");
                     System.out.println("##### CABINES PREMIUM VAGAS #####");
                     for(int i = 0; i < transatlantico.getListaCabinesPremium().size(); i++){
                         if(!transatlantico.getListaCabinesPremium().get(i).isOcupada()){
                             System.out.println(transatlantico.getListaCabinesPremium().get(i).getNumero());
                         }
                     }
                     cabineSelecionada = teclado.nextInt();
                     for(int i = 0; i < transatlantico.getListaCabinesPremium().size(); i++){
                         if(transatlantico.getListaCabinesPremium().get(i).getNumero() == cabineSelecionada){
                             if(!transatlantico.getListaCabinesPremium().get(i).isOcupada()){
                                 transatlantico.getListaCabinesPremium().get(i).setOcupada(true);
                                 transatlantico.getListaCabinesPremium().get(i).setFamilia(familia);
                                 //familia.setCabine(transatlantico.getListaCabinesPremium().get(i));
                             }else{
                                 System.out.println("Cabine indisponível");
                             }
                             
                         }else{
                             System.out.println("Cabine indisponível");
                         }
                     } 
                     
                     //TESTE
                     for(int i = 0; i < transatlantico.getListaCabinesPremium().size(); i++){
                         if(!transatlantico.getListaCabinesPremium().get(i).isOcupada()){
                             System.out.println(transatlantico.getListaCabinesPremium().get(i).getNumero());
                         }
                     }
                 } 
             }
             
             
             if(opt3 == 1){
                 System.out.println("\n##### CADASTRAR FAMÍLIA #####");
                 System.out.println("Digite o sobrenome da família: ");
                 familia.setSobreNome(teclado.next());
    
                 System.out.println("Quantas pessoas quer cadastrar (MÁXIMO 4): ");
                 System.out.println("OBS: CRIANÇAS MENORES DE 2 ANOS NÃO PODEM EMBARCAR");
                 int numPessoas = teclado.nextInt();
                 for(int i = 0; i < numPessoas; i++){
                     Pessoa pessoa = new Pessoa();
                     System.out.println("Digite o nome do membro da família: ");
                     pessoa.setNome(teclado.next());
                     System.out.println("Digite a idade: ");
                     pessoa.setIdade(teclado.nextInt());
                     System.out.println("Digite o sexo: ");
                     pessoa.setSexo(teclado.next());
                     familia.addPessoa(pessoa);
                 }
             }else{
                 System.out.println("Venda cancelada!");
             }
         }
    
         
         else if(opt1 == 2){
             System.out.println("Pacotes vendidos: " + viagem.calcularPacotesVendidos());
         } 
    
         
         else if(opt1 == 3){
             System.out.println("Cabines Vagas:");
             System.out.println("Econômicas: " + transatlantico.mostrarVagasCabinesEconomicas());
             System.out.println("Executivas: " + transatlantico.mostrarVagasCabinesExecutivas());
             System.out.println("Premium: " + transatlantico.mostrarVagasCabinesPremium());
         }
    
         
         else if(opt1 == 4){
             System.out.println("Rendimento da viagem: R$ " + viagem.calcularLucro());
         }
         
     }while(opt1 != 5);
    

    }
    }

Faça o teste de mesa ou debug, obviamente vc deve saber que só vai executar o else quando o if for falso então verifique oq está havendo no IF.

Seu método tem mais de 200 linhas! :open_mouth: Não faz isso colega…

Quebra esse teu programa em partes menores que fica mais fácil identificar o erro.

1 curtida