1
resposta

meu exercicio

Nossa, a minha função de atualizaNivel ficou mt maior do que a do exemplo kkk

public class AlunoPontos {

    private String nome;
    private int nivel = 1;
    private int pontos = 0;

    AlunoPontos (String nome){
        this.nome = nome;
        pontos = 0;
        this.nivel = atualizaNivel();
    }
    
    void ganharPontos(int p){
        pontos += p;
        atualizaNivel();
    }

    public int atualizaNivel() {
        if (pontos >= 0 && pontos <= 99){
            this.nivel = 1;
        } else if (pontos >= 100 && pontos <= 199){
            this.nivel = 2;
        } else if (pontos >= 200 && pontos <= 299){
            this.nivel = 3;
        } else {
            System.out.println("Pontuação inválida.");
        }
        return this.nivel;
    }

    void exibirStatus(){
        System.out.println("Aluno: " + this.nome);
        System.out.println("Pontos: " + this.pontos);
        System.out.println("Nível: " + this.nivel);
    }
    
}



public class Main {
    public static void main(String[] args) {

        AlunoPontos aluno = new AlunoPontos("Fernanda");

        aluno.ganharPontos(100);

        aluno.exibirStatus();

    }   
    
}
1 resposta

Oi, Diogo! Como vai?

Gostei da forma como você estruturou o método atualizaNivel. Ele está funcionando bem para o objetivo da atividade e mostra claramente as faixas de pontuação. Sua solução ficou bem organizada.

Uma dica interessante para o futuro é usar switch em vez de vários if/else, quando as faixas de valores forem mais diretas. Veja este exemplo:


int nivel;
switch(pontos/100){
    case 0: nivel = 1; break;
    case 1: nivel = 2; break;
    case 2: nivel = 3; break;
    default: System.out.println("Pontuacao invalida."); break;
}

Esse código divide os pontos por 100 e determina o nível de forma simplificada.

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