2
respostas

ajuda

package praticandojavacondicionaisifeelse;

import java.util.Scanner;

public class VerificandoCodigoDeAcessoENivelDePermissao {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Digite o código de acesso: ");
int codigoDeAcessoDigitado= scanner.nextInt();
System.out.println("Digite o nível de permissão: ");
int nivelDePermissaoDigitado= scanner.nextInt();

    int codigoDeAcessoCorreto= 2023;
    int nivelDePermissaoAceito1= 1;
    int nivelDePermissaoAceito2= 2;
    int nivelDePermissaoAceito3= 3;

    if (codigoDeAcessoDigitado === codigoDeAcessoCorreto && nivelDePermissaoDigitado === nivelDePermissaoAceito1) {
        System.out.println("Acesso permitido! Bem vindo ao sistema!")
}  if else (codigoDeAcessoDigitado === codigoDeAcessoCorreto && nivelDePermissaoDigitado === nivelDePermissaoAceito2)
    {
        System.out.println("Acesso permitido! Bem vindo ao sistema!");
        if else
        (codigoDeAcessoDigitado == = codigoDeAcessoCorreto && nivelDePermissaoDigitado == = nivelDePermissaoAceito3);
        {
            System.out.println("Acesso permitido! Bem vindo ao sistema!");
        } else{
        System.out.println("Acesso não permitido. Tente uma opção válida!");
    }
        scanner.close();
    }

}

por gentileza, gostaria de receber feedback sobre esse codigo. coloquei para testar e está cheio de eros, mas não estou conseguindo consertar porque não entendo o que errei exatamente. pode me ajudar?

2 respostas

Oi, Jackeline! Como vai?

Com base no que você explicou, vamos resolver isso. O que chamou atenção: uso de === (em Java use ==), if else em vez de else if, faltam ; e chaves, e há um ; logo após a condição que quebra o if. Pontos importantes: troque === por ==, use else if, remova ; depois do ), feche chaves corretamente e feche o Scanner no final. Ajuste seu código assim:
Uma dica interessante para o futuro é usar switch para simplificar a verificação do nível quando o código estiver correto. Veja este exemplo:


// Exemplo em Java sem acentuacao
import java.util.Scanner;

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

    System.out.println("Digite o codigo de acesso: ");
    int codigo = scanner.nextInt();

    System.out.println("Digite o nivel de permissao: ");
    int nivel = scanner.nextInt();

    final int CODIGO_CORRETO = 2023;

    if (codigo == CODIGO_CORRETO) {
      switch (nivel) {
        case 1:
        case 2:
        case 3:
          System.out.println("Acesso permitido. Bem-vindo ao sistema.");
          break;
        default:
          System.out.println("Nivel de permissao invalido.");
      }
    } else {
      System.out.println("Codigo incorreto. Tente novamente.");
    }

    scanner.close();
  }
}

O que o código faz: primeiro confere codigo; se estiver certo, o switch aceita nivel 1, 2 ou 3; outros valores caem no default.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

agradeço as observações valiosas! eu não entendi pq vc cria uma variável separada ( final int CODIGO_CORRETO = 2023;) para o código de acesso correto, mas não cria uma para os níveis de permissão. Não deveria ser criada tbm, fora do switch? juntamente com a variavel do código de acesso correto, conforme eu havia criado?