1
resposta

[Projeto] Minha resolução

Gostaria de saber se a variável "String senhaCorreta = "123456";" poderia ser feita como int, já que se trata de um número, assim trocando o scanner por "scanner.nextInt();".

package condicionais_if_e_else;

import java.util.Scanner; // aviso ao Java que vou usar essa ferramenta

public class ValidacaoSenha {
    public static void main(String[] args) {
        String senhaCorreta = "123456";
        Scanner scanner = new Scanner(System.in);

        System.out.println("Digite a sua senha: ");
        String tentativaSenha = scanner.nextLine();

        scanner.close();

        if (tentativaSenha.equals(senhaCorreta)) {
            System.out.println("Acesso permitido!");
        } else {
            System.out.println("Acesso negado!");
        }
    }
}
1 resposta

Olá, Filipe! Como vai?

Embora "123456" seja composto apenas por números, é importante lembrar que senhas geralmente são tratadas como strings, mesmo quando são apenas números. Isso ocorre porque senhas podem incluir caracteres especiais ou letras, e tratá-las como strings garante mais flexibilidade e segurança.

Se você transformar a senha em um int, qualquer zero à esquerda seria removido e senhas com caracteres não numéricos não seriam possíveis. Além disso, ao usar nextInt(), você pode acabar enfrentando problemas com exceções se o usuário digitar algo que não seja um número.

Por essas razões, é uma prática comum e recomendada manter senhas como String. Isso também simplifica o uso de métodos como equals() para comparação direta das strings.

Espero ter ajudado e fico à disposição se precisar.

Abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado