Boa tarde, no algoritmo abaixo, eu tenho que verificar se o CPF contém somente números. Ocorre que se eu digitar o CPF errado como por exemplo: 123K5678901, o algoritmo verificar que não contém somente número mas não volta a solicitá-lo novamente, pois é essa a intenção. No primeiro IF que onde se verifica que o CPF deve ter 11 dígitos, funcionou perfeitamente, ou seja, se eu digito um CPF com menos ou mais de 11 dígitos, o algoritmo solicita novamente até eu preencher corretamente a quantidade. Poderiam me ajudar?
import javax.swing.JOptionPane;
public class CPF {
public static void main(String[] args) {
String cpf = "";
while (true) {
cpf = JOptionPane.showInputDialog("Informe seu CPF");
byte i=0;
if (cpf == null || cpf.trim().length() == 0)System.exit(0);
if (cpf.length() < 11 || cpf.length() > 11) {
JOptionPane.showMessageDialog(null, "CPF inválido");
continue;
}else {
for (cpf.charAt(i); i<11; i++) {
if ((byte)cpf.charAt(i) < 47 || (byte)cpf.charAt(i) > 58){
JOptionPane.showMessageDialog(null, "Só pode ter números");
continue;
}
}
}
break;
}
JOptionPane.showMessageDialog(null, cpf);
System.exit(0);
}
}