Problema para retornar um valor em um método/função

Esse código é de um trabalho escolar que valida se um CPF que o usuário inserir é válido ou inválido, mas o “valida2” não retorna para a função:

_package davi_exerciciospoo;_

_import java.util.Scanner;_
_public class Escaneador_CPF {_
_    _
_    public int validador(int CPF[] , int valida1 , int valida2){_
_        int soma1;_
_        int soma2;_
_        soma2 = 0;_
_        int resto;_
_        for (int j=0; j<=8; j++){_
_            soma1 = CPF[j] * (10 - j);_
_            soma2 = soma2 + soma1;_
_        }_
_        resto = soma2 % 11;_
_        if (resto >= 2 && resto <=9){_
_            valida1 = 11 - resto;_
_        }else{_
_            if (resto < 2){_
_                valida1 = 0;_
_            }_
_        }_
_        _
_        _
_        int soma2_1;_
_        int soma2_2;_
_        soma2_2 = 0;_
_        int resto2;_
_        for (int j=0; j<=10; j++){_
_            soma2_1 = CPF[j] * (11 - j);_
_            soma2_2 = soma2_2 + soma2_1;_
_        }_
_        resto2 = soma2_2 % 11;_
_        if (resto2 >= 2 && resto2 <= 9){_
_            valida2 = 11 - resto2;_
_        }else{_
_            if (resto2 < 2){_
_                valida2 = 0;_
_            }_
_        }_
_        _
_        if ((valida1 == CPF[9]) && (valida2 == CPF[10])){_
_            System.out.println("CPF válido!");_
_        }else{            _
_            System.out.println("CPF inválido!");_
_        }_
_        _
_        return valida1;_
_        return valida2;_
_    }_
_    _
_    public static void main(String args[]){_
_        int CPF[] = new int[11];_
_        Scanner s = new Scanner(System.in);_
_        System.out.println("Digite o CPF: ");_
_        for(int i=0; i<=10; i++){_
_            CPF[i] = s.nextInt();_
_        }_
_        Escaneador_CPF c = new Escaneador_CPF();_
_    }_
_}_

estou usando o NetBeans 8.2 para programar

Boa noite.
Não entendi porquê você estava querendo retornar o valida1 e o valida2, sendo que dentro do método validador() você já faz toda a validação e informa pro usuário se o CPF é válido ou não.
Bem, caso fosse necessário retorná-los, você teria que retornar um array de int contendo os dois valores, pois não podem haver dois retornos no método. Ficaria algo assim:

int r[] = new int[2];
r[0] = valida1;
r[1] = valida2;
return r;

Mas não é necessário. A única coisa que falta pra você é chamar o método validador() na sua instância de Escaneador_CPF criada na última linha do main. Fica assim:

c.validador(CPF, CPF[9], CPF[10]);

Pronto! Na tela já será exibido se o CPF é valido ou não.

1 curtida