DUvida sobre validação dentro do FOR

Criei um vetor[5] e preciso validar se a informacao que eu estou inserindo se ela ja existe ou nao para isso preciso percorrer o vetor para verificar se ja existe a informacao.
O que esta ocorrendo se eu coloco o break ele nao percorre todo o vetor e nao valida se a placa ja existe ( nao posso inserir 2x a mesma placa) e se eu nao coloco o break ele nao finaliza e nao sai do for
ele da a msg que a placa esta cadastrada …e nao segue o fluxo do switch … o que posso fazer?


import java.text.DecimalFormat;
import java.util.Scanner;
import java.util.Vector;


public class Teste {

    
    public static void main(String[] args) {
        DecimalFormat df = new DecimalFormat("#");
         Passeio[] vp =  new Passeio[5]; 
         Carga[]   vc = new Carga[5];
   
        String validaPlaca;
        String opcao = "";  
        String sair = "";
        boolean valida = false;
        int count = 0;
        int i = 0;
        int j = 0;
        
        while (!opcao.equalsIgnoreCase("7")) {  
           
       
            
        System.out.print("\n##-Sistema de Gestao de Veiculos Menu - Principal-##\n");
        System.out.print("|---------------------------------------------------|\n");
        System.out.print("| Opção 1 - Cadastrar Veiculo de Passeio            |\n");
        System.out.print("| Opção 2 - Cadastrar Veiculo de Carga              |\n");
        System.out.print("| Opção 3 - Imprimir todos os Veiculos de Passeio   |\n");
        System.out.print("| Opção 4 - Imprimir todos os Veiculos de Carga     |\n");
        System.out.print("| Opção 5 - Imprimir Veiculos de Passeio pela placa |\n");
        System.out.print("| Opção 6 - Imprimir Veiculos de Carga pela placa   |\n");
        System.out.print("| Opção 7 - Sair do Sistema                         |\n");
        System.out.print("|---------------------------------------------------|\n");
        
        System.out.print("\nDigite uma opção: ");
        opcao = Leitura.entDados("") ;
        
        
        switch (opcao) {
          
            case  "1":
              
                System.out.print("\nOpcao Cadastrar Veiculo de Passeio Selecionado...\n");  
               
                 vp[i] = new Passeio();
                 
                        
                System.out.println("\nInforme a Placa: ");
                validaPlaca = Leitura.entDados("");
             
                 for (int v = 0 ;v < vp.length;v++) { //NESTA VALIDACAO
                    
                     if(vp[v] != null){
                         
                      if(vp[v].getPlaca().equalsIgnoreCase(validaPlaca)){
                          System.out.println("A placa ja esta cadastrada"); 
                          break;
                      }
                     
                   }else{
                         System.out.println("entra 4");
                         vp[i].setPlaca(validaPlaca);
                      
                      //break;
                      }
                  
                } 
          
                
                System.out.println("\nInforme a Qtde Pistoes: " );
                vp[i].getMotor().setQtdPist(Integer.parseInt(Leitura.entDados("")));
                         
                System.out.println("Deseja realizar um novo cadastro ? S/N");
                sair = Leitura.entDados("");
                 
                while(sair.equalsIgnoreCase("S")){
                     
                    i += 1;
                     
                    vp[i] = new Passeio();
                    
           
                    //--
                    System.out.println("\nInforme a Placa: ");
                    validaPlaca = Leitura.entDados("");
                    
                    for (int v = 0 ;v < vp.length;) {
                     if(vp[v] != null){
                      if(vp[v].getPlaca().equalsIgnoreCase(validaPlaca)){
                          System.out.println("A placa ja esta cadastrada"); 
                         // break;
                      }
                      v += 1;
                   }else{
                      vp[i].setPlaca(validaPlaca);
                      //break;
                      }
                  
                   }
                    //---
            
                
                   System.out.println("\nInforme a Qtde Pistoes: " );
                   vp[i].getMotor().setQtdPist(Integer.parseInt(Leitura.entDados("")));
                                  
                   System.out.println("Deseja realizar um novo cadastro no tipo Passeio ? S/N");
                   sair = Leitura.entDados("");
                   
                 }//fim do while
                                
                
                break;
           
   
          
            case "2":
                  System.out.print("\nEncerrando Sistema....Ate logo!");
                              
                  break;
                  
            default:
                System.out.print("\nOpcao Invalida...!");
                break;
             }
        
        i += 1;
    }
        
  
        
        } // classe main
     

  
}

Se tiveres 5 quartos e quiseres saber se ha pessoas em algum dos cinco, consegues logo concluir algo quando abres a primeira porta e o quarto está vazio? Ou tens de abrir todas as portas e só depois permitir a uma pessoa que entre para o primeiro quarto?

Da mesma forma aqui tens de fazer o loop primeiro e, só depois, se não encontrares a placa, adicioná-la.

boolean encontrou = false;
for (int v = 0 ;v < vp.length;v++) { 
    if(vp[v] != null && vp[v].getPlaca().equalsIgnoreCase(validaPlaca)){
        System.out.println("A placa ja esta cadastrada"); 
        encontrou = true;
        break;
    }
}                     
// se encontrou é false, percorreu todo o for sem encontrar a placa
if (!encontrou) {
    System.out.println("entra 4");
    vp[i].setPlaca(validaPlaca);
}

Aparentemente é uma duplicação dos seguintes tópicos

Em outro tópico já foi sugerido usar List em vez de array, assim vc só insere os itens que precisa, e elimina a necessidade de ficar verificando se é nulo.

E organize melhor o código. Separe cada opção em um método separado, por exemplo. E não precisa declarar todas as variáveis no início, pode declarar cada uma mais próxima de onde é usada, assim limita o escopo da mesma, além de facilitar o entendimento e manutenção do código.

Uma sugestão de como ficaria:

public class Teste {
    public static void main(String[] args) throws Exception {
        List<Passeio> vp = new ArrayList<>();
        Scanner scan = new Scanner(System.in);
        while (true) {
            System.out.print("\n##-Sistema de Gestao de Veiculos Menu - Principal-##\n");
            System.out.print("|---------------------------------------------------|\n");
            System.out.print("| Opção 1 - Cadastrar Veiculo de Passeio            |\n");
            System.out.print("| Opção 2 - Cadastrar Veiculo de Carga              |\n");
            System.out.print("| Opção 3 - Imprimir todos os Veiculos de Passeio   |\n");
            System.out.print("| Opção 4 - Imprimir todos os Veiculos de Carga     |\n");
            System.out.print("| Opção 5 - Imprimir Veiculos de Passeio pela placa |\n");
            System.out.print("| Opção 6 - Imprimir Veiculos de Carga pela placa   |\n");
            System.out.print("| Opção 7 - Sair do Sistema                         |\n");
            System.out.print("|---------------------------------------------------|\n");
            System.out.print("\nDigite uma opção: ");
            String opcao = scan.nextLine();
            if ("7".equals(opcao)) {
                break; // Opção "sair", então uso break para sair do while
            }
            // verifica as demais opções
            switch (opcao) {
                case "1":
                    while (true) { // repete enquanto escolher a opção de realizar novo cadastro
                        cadastro(scan, vp);
                        System.out.println("Deseja realizar um novo cadastro ? S/N");
                        if ("n".equalsIgnoreCase(scan.nextLine())) {
                            break; // escolheu "não", sai do while
                        }
                    }
                    break;
                case "2":
                    // chama o método de cadastrar veículo de carga
                    break;
                case "3":
                    // chama o método de imprimir todos os veículos de passeio
                    break;
                // etc...
                default:
                    System.out.print("\nOpcao Invalida...!");
                    break;
            }
        }
    }

    public static void cadastro(Scanner scan, List<Passeio> vp) {
        System.out.print("\nOpção Cadastrar Veículo de Passeio Selecionada\n");
        System.out.println("\nInforme a Placa: ");
        String placa = scan.nextLine();
        for (Passeio p : vp) {
            if (p.getPlaca().equalsIgnoreCase(placa)) {
                System.out.println("A placa já está cadastrada");
                return; // placa existe, sai do método de cadastro
            }
        }
        // se a placa ainda não existe, cria um novo veículo de passeio e insere na lista
        Passeio passeio = new Passeio();
        passeio.setPlaca(placa);
        System.out.println("\nInforme a Qtde Pistoes: ");
        passeio.getMotor().setQtdPist(Integer.parseInt(scan.nextLine()));

        vp.add(passeio); // adiciona na lista
    }
}