Erro no retorno do método

Esse método não vai compilar por causa do tipo retorno que tem q ser uma booleano, nao tem como fazer isso sem usar uma variavel pra retorna o valor? porque tem q sai dos testes na hora, se for pro proximo if ele vai erra o retorno.
Obrigado a todos.
O código.

[code]public boolean igual(Lista l) {

   for(NoLista p1 = prim,p2 = l.getPrim(); p1!=null && p2!=null; p1 = p1.getProx(), p2 = p2.getProx()) {
	   if(p1.getInfo() != p2.getInfo()) {
		   return false;
		  
	   }
	   else if(p1.getInfo() == p2.getInfo()) {
		   return true;
		 
	   } else {
		   return  false;
		
	   }
   } 

}
[/code]

não precisar usar variavel pode retornar do jeito que você fez sim, e ele sai do escopo do metodo no primeiro return que esbarrar…
ou então nao intendi o problema direito, mas ja que este metodo tem um if e um else , creio eu que haja garantia de um retorno, então o compilador nao devia reclamar…

Então cara num sei se entendi direito a sua duvida…

mas se entrar por exemplo num if, o método acaba pq tem o return ja… então ele num vai continuar rodando…

Mas se vc não quisesse user esse return boolean podia usar um break, mas num é mto aconselhavel fazer isso… depende ai do nivel de gambiarra que vc quer aplicar no programa rsrs… :slight_smile:

abs!

Não compreendi lhufas do seu método, mas vai um conselho:

Provavelmente vc esta enfrentando um problema simples: o seu laço for pode terminar sem que nenhum return seja alcançado.

ex:

public class A{ public static void main (String [] args){ for(int i=0;i>800;i++) System.out.println(i); } }

Este código não vai imprimir nenhuma linha pois a condição i>800 nunca sera verdadeira. Um for não garante que vc vai executar pelo menos um ciclo, como é o caso do do { } while(condição); – assim sendo, o seu método pode não entrar nessa condição e nenhum return será encontrado nesse caso.

Coloque um return false; antes do fim do método - fora do for - para estes casos.

tu quer assim ?

  public boolean igual(Lista l) 
  {   
     return p1.getInfo() == p2.getInfo();
   }