Problema com java.lang.nullpointerexception

public ContaBancaria procurarConta(int numConta){
        for(int i=0; i<5; i++){
            if(cb[i].getNumeroConta() == numConta){
                return cb[i];
            }
        }
        return null;
}

public static void main(String[] args) {
    int numeroConta=123; 

    if (banco.procurarConta(numeroConta) == null) {
          System.out.println("Conta inexistente");
    } else {
          System.out.println("Conta existente"); 
    }
}

Melhorando a legibilidade:

public ContaBancaria procurarConta(int numConta){
	for(int i = 0; i < 5; i++){
		if(cb[i].getNumeroConta() == numConta){
			return cb[i];
		}
	}
	return null;
}

public static void main(String[] args){
	int numeroConta = 123;

	if (banco.procurarConta(numeroConta) == null){
		System.out.println("Conta inexistente");
		
	}else{
		System.out.println(“Conta existente”);
	}
}

Se o teste if(cb[i].getNumeroConta() == numConta) falhar, o retorno será null. O método espera o retorno desse método, está recebendo null. Deve ter em mente que o return dentro do laço (for) apenas finaliza o for, e não o método.

Creio que assim resolva:

public ContaBancaria procurarConta(int numConta){
	ContaBancaria contaEncontrada = null;
	int flag = 5;
	
	for(int i = 0; i < flag; i++){
		if(cb[i].getNumeroConta() == numConta){
			contaEncontrada = cb[i];
			flag = 0;
		}
	}
	return contaEncontrada;
}

public static void main(String[] args){
	int numeroConta = 123;

	if (banco.procurarConta(numeroConta) == null){
		System.out.println("Conta inexistente");
		
	}else{
		System.out.println(“Conta existente”);
	}
}

Você também pode usar o return para finalizar o laço depois da atribuição no lugar da flag.

Entendi as suas explicações mas no exercicio em questao é pedido que retorne null caso nao seja encontrada a conta.

Este Array cb tem os cinco elementos válidos que você precisa?

Onde está o restante da classe e a stack trace do erro?

Mas o método que espera o resultado desse método está ‘preparado’ para lidar com o null? De acordo com a documentação (Docs Oracle - NullPointerException):

Lançado quando um aplicativo tenta usar um caso nulo em um objeto necessário. Esses requisitos são:

  • Comando ou método de instância de um objeto null.
  • Acessando ou modificando o campo de um elemento null.
  • Tomando o comprimento de null como se fosse uma matriz.
  • Acessando ou modificando os slots null como se fosse uma matriz.
  • Lançando null como se fosse um valor Throwable.

array cb declarado:

ContaBancaria cb []= new ContaBancaria[5];

Stacktrace

Exception in thread “main” java.lang.NullPointerException at exerciciopratico.Banco.procurarConta(Banco.java:28) at exerciciopratico.Menu.main(Menu.java:53) /home/eu/.cache/netbeans/8.2/executor-snippets/run.xml:53: Java returned: 1 BUILD FAILED (total time: 33 seconds)

Onde é definido o valor do getNumeroConta? pois não estou vendo nenhum setter pra ele

Você está equivocado!
A instrução return sempre finaliza o método, então é mais otimizado do que setar uma flag dentro do laço.

O NullPointerException está acontecendo pelo fato de o elemento cb[i] estar null.

Só dá pra chamar o método getNumeroConta() em referências diferente de null.

Você está certo @staroski… preciso rever meus conceitos de programação. Erro crasso o meu!