Questão FC373235
Uma Analista, que está desenvolvendo uma aplicação em Java para verificar se uma senha atende a certos critérios de segurança, digitou o programa abaixo. public class Verificar { p
Linguagens de Programação
FCC · 2024
Uma Analista, que está desenvolvendo uma aplicação em Java para verificar se uma senha atende a certos critérios de segurança, digitou o programa abaixo.
public class Verificar {
public static void main(string[] args) {
System.out.println("Resultado: " + verificar ("aBcl2xZ"));
}
public static boolean verificar (String senha) {
if (senha.length ( ) >= 8) {
boolean temMaiusc = false;
booelan temMinusc = false;
boolean temNum = false;
for (int i = 0; i < senha.length ( ) ; I++) {
char c = senha.charAt (i) ;
if (Character.isUpperCase (c)) {
temMaiusc = true;
} else if (Character .isLowerCase(c)) {
temMinusc = true;
} else if (Character, isDigit (c)) {
temNum = true;
}
}
return temMaiusc && temMinusc && temNum;
} else {
return false;
}
}
}
Em condições ideais, o método verificar
- deve usar uma estrutura while ao invês de for.
- retornará false.
- verifica o comprimento da senha, mas não a presença de números.
- retornará true.
- verifica o comprimento e a presença de letras maiúsculas e minúsculas, mas não a existência de números.
Mostrar resposta e comentário
Gabarito
B
Comentário do professor
A chamada verificar("aBcl2xZ") retorna o valor false porque a primeira checagem do método é o comprimento da senha: if (senha.length() >= 8).
A string passada possui 7 caracteres (a, B, c, l, 2, x, Z), logo senha.length() é igual a 7, que não satisfaz a condição \( \ge 8 \).
Como a condição do if é falsa, a execução entra no else correspondente e o método executa return false, encerrando-se sem avaliar os caracteres individuais.
No ponto de chamada, esse retorno resulta na impressão "Resultado: false". Em resumo: a senha falha pela regra de comprimento mínimo, razão direta do retorno false.
Conteúdo do catálogo FC Concursos · Atualizado em