Oi, Riane!
Depende da situação: ter muitos if e else if espalhados pelo código pode tornar a manutenção mais difícil e deixar o código menos legível.
Isso se relaciona com as boas práticas de programação, especialmente na orientação a objetos (você verá sobre isso mais pra frente quando estudar esse tema de orientação a objetos.)
Quando você tem muitas condições, uma alternativa é considerar o uso polimorfismo ou estruturas de dados como switch (caso você esteja lidando com um número limitado de opções) ou até mesmo criar uma classe que encapsule a lógica de decisão
Sobre o Scanner
você pode utilizá-lo pra leitura dos dados uma única vez. Ao criar uma instância do Scanner no início do seu método main, você pode reutilizá-la sempre que precisar ler uma entrada do usuário.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!