1
resposta

Por que o resultado do codigo está dando true na disponibilidade?

Musica musica1 = new Musica(); musica1.nome = "Roxane"; musica1.artista = "The Police"; musica1.duracao = 237; musica1.disponivel = true;

Musica musica2 = new Musica(); musica2.nome = "Vertigo"; musica2.artista = "U2"; musica2.duracao = 367; musica2.disponivel = false;

musica1.ExibirFichaTecnica(); musica2.ExibirFichaTecnica();

class Musica { public string nome; public string artista; public int duracao; public bool disponivel;

public void ExibirFichaTecnica()
{
    Console.WriteLine($"Nome: {nome}");
    Console.WriteLine($"Artista {artista}");
    Console.WriteLine($"Duração: {duracao}");
    if (disponivel)
    {
        Console.WriteLine($"Disponivel no plano: {disponivel}");
    }
    else
    {
        Console.WriteLine("Adquira o plano plus+");
    }
}

}

1 resposta

O código está dando "true" na disponibilidade de musica1 porque o valor de disponivel foi explicitamente definido como true quando você criou o objeto musica1:

musica1.disponivel = true;

Isso faz com que, quando o método ExibirFichaTecnica é chamado para o musica1, a condição if (disponivel) seja verdadeira e o código dentro do if seja executado, imprimindo:

Disponível no plano: True

No caso de musica2, o valor de disponivel foi definido como false, então o código entra no else e imprime:

Adquira o plano plus+

Se você está se referindo ao "true" que aparece ao lado da palavra "Disponível no plano", isso é esperado, pois o tipo bool em C# é impresso como true ou false. Se você quiser modificar essa impressão para algo mais específico, pode alterar o código da seguinte forma:

if (disponivel)
{
    Console.WriteLine("Disponível no plano");
}
else
{
    Console.WriteLine("Adquira o plano plus+");
}

Assim, ao invés de exibir "Disponível no plano: True", será impresso simplesmente "Disponível no plano" quando a música estiver disponível.