1
resposta

[Dúvida] 07 Desafio: hora da prática

Eu tenho uma duvida, no projeto de Sound Screen os professores colocaram dessa forma:

ExibirLogo();
Console.WriteLine("\nDigite 1 para registrar uma banda");
Console.WriteLine("Digite 2 para mostrar todas as bandas");
Console.WriteLine("Digite 3 para avaliar uma banda");
Console.WriteLine("Digite 4 para exibir a média de uma banda");
Console.WriteLine("Digite -1 para sair");

Console.Write("\nDigite a sua opção: ");
string opcaoEscolhida = Console.ReadLine()!;
int opcaoEscolhidaNumerica = int.Parse(opcaoEscolhida);

Mas no exercicio utilizei esse formato:

ExibirLogo();
Console.WriteLine("\nDigite 1 para registrar uma banda");
Console.WriteLine("Digite 2 para ver a lista das bandas");
Console.WriteLine("Digite 0 para sair do Lucas Sound");

Console.Write("\nInformar a opção desejada: ");
int OpcaoEscolhida = int.Parse(Console.ReadLine());

Não consegui ver diferença no funcionamento final, mas tem alguma coisa especifica do por que os professores fizeram dessa forma não me recordo deles explicar isso

1 resposta

Oii, Lucas. Tudo bem?

Excelente observação! É muito legal que você não tenha apenas copiado o código, mas sim tentado fazer do seu jeito e comparado as diferenças. Isso mostra que você tá atento aos detalhes.

Na prática, o funcionamento final para o usuário é exatamente o mesmo. O seu código tá correto e funciona super bem para o exercício.

A diferença na abordagem dos instrutores acontece por dois motivos principais:

1. Clareza didática:
Ao separar em duas linhas, fica mais visual para quem está começando agora que o Console.ReadLine() devolve, originalmente, um texto (string).

  • Primeiro guardamos o texto (string opcaoEscolhida).
  • Depois convertemos para número (int.Parse).

No seu código, você fez o que chamamos de aninhamento (colocar uma função dentro da outra). Isso é muito comum no dia a dia de devs experientes, mas pode confundir um pouco quem tá vendo o código pela primeira vez.

2. O aviso de nulo (o símbolo !)
Aquele ponto de exclamação no final (Console.ReadLine()!) serve para "silenciar" um aviso do C#. As versões mais novas da linguagem são bem rigorosas e avisam: "Cuidado, o usuário pode não digitar nada e isso aqui ser nulo!".
Ao colocar o !, estamos dizendo ao compilador: "Pode confiar, eu garanto que vai chegar um valor aqui". No seu código, sem o !, o Visual Studio pode exibir um sublinhado amarelo de alerta, embora o programa rode normalmente.

Resumindo: seu raciocínio lógico está ótimo! A versão da aula é apenas mais "explicadinha" e previne alertas do editor.

Continue com essa curiosidade, ela é essencial para evoluir na programação.

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