Return dentro do if

2 respostas Resolvido
Osniel_Teixeira

Não consigo rodar o código a baixo, apresenta a mensagem “missing return statement”

public static boolean isAnagram(String a, String b) {
    if(a.length()==b.length()){
        int cont = 0;
        for(int i = 0; i<a.length(); i++){
            for(int j = 0; j<b.length(); j++){
                if(a.charAt(i)==b.charAt(j)){
                    cont++;
                    break;
                }
            }
        }
        if(cont==b.length()){
            return true;
        }
    }else{
        return false;
    }    
}

public static void main(String[] args) {

    Scanner scan = new Scanner(System.in);
    String a = scan.next();
    String b = scan.next();
    scan.close();
    boolean ret = isAnagram(a, b);
    System.out.println( (ret) ? "Anagrams" : "Not Anagrams" );
}

2 Respostas

Lucas_Camara
Solucao aceita
public static boolean isAnagram(String a, String b) {
    if(a.length()==b.length()){
        int cont = 0;
        for(int i = 0; i<a.length(); i++){
            for(int j = 0; j<b.length(); j++){
                if(a.charAt(i)==b.charAt(j)){
                    cont++;
                    break;
                }
            }
        }
        if(cont==b.length()){
            return true;
        }

        return false; // faltou esse
    }else{
        return false;
    }    
}

Faltou um return no primeiro IF.

Osniel_Teixeira

Valeu!!!:grinning:

Criado 6 de julho de 2016
Ultima resposta 6 de jul. de 2016
Respostas 2
Participantes 2