Seu código está bom, e neste momento que você está a começar a dar os passos na programação, não tem de se preocupar em errar e saber se o código está 100% seguindo os padrões da linguagem, isso faz parte do aprendizado. Do jeito que está, ele funciona, mas poderiam ser feitas algumas melhorias, por exemplo, na declaração da variável senha, você passa ela em duas linhas, isso pode ser feito inline (uma única linha), assim reduzindo código:
int senha = input.nextInt();
Esta abaixo é opcional, mas você poderia criar uma variável específica para guardar a password para verificação com a senha que seria passada pelo usuário:
final int password = 123456;
if (senha == password)
Mas do jeito que você fez, não deixa de estar certo, ainda mais na condicional if
que o ==
está a comparar os valores das variáveis.
Tenho uma dica para você: sempre, ou quase sempre, que você se deparar com condicionais do tipo if-else apenas como no seu código:
if (senha == password) {
System.out.println("Acesso permitido!");
} else {
System.out.println("Acesso Negado!");
}
Você pode passar, no lugar disso, uma operação ternária
. Ela é nada mais que um if-else mais semântico, sua sintaxe é condicional ? verdadeiro : falso
. O '?' indica um “se sim” e, logo após, vem um valor verdadeiro; o ':' indica “se não” e, logo após, vem um valor falso. Ah, mais uma coisa: sempre que você usar o Scanner
, lembre-se de, no final do código, chamar o método .close()
para indicar que a operação foi terminada/concluída com êxito e o código poder se encerrar.
Aqui, eu tomei a liberdade de poder refatorar seu código para deixá-lo mais coeso, legível e seguindo boas práticas, que é o que você disse que queria saber se seu código tinha.
import java.util.Scanner;
public class validacaoDeSenha {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
final int password = 123456;
System.out.print("Digite a senha: ");
int senha = input.nextInt();
System.out.println(senha == password ? "Acesso permitido!" : "Acesso Negado!");
input.close();
}
}
Outra forma, voce poderia passar diretamente o input.nextInt()
na condicional, desta forma:
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
final int password = 123456;
System.out.print("Digite a senha: ");
System.out.println(input.nextInt() == password ? "Acesso permitido!" : "Acesso Negado!");
input.close();
}
Desta forma fica um pouco menos legivel, mas nao deixa de estar certo. Bem, espero te-lo ajudado a sanar suas duvidas com isso.