Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

[Dúvida] Consola encerra automaticamente após execução do código

Olá ;) Espero que se encontrem bem. Depois de executar o código a consola encerra automaticamente. No final do código coloco o Console.ReadLine(), no entanto, depois de sair da opção 2 para a 1, ao tentar selecionar a opção 1 a consola encerra. Refiro me ao projeto screensound. Obrigado cumprimentos.

4 respostas

Ola Emanuel Massa Carvalho, tudo bem ?

Consegue enviar o codigo para olharmos com mais detalhes ?

Olá Abner :)

td bem, obrigado. Espero que consigo também.

Antes de mais obrigado pela ajuda.

Envio código abaixo:

//Screen Sound App
using System;
using System.Security.Cryptography;

void NomeApp() {
    Console.WriteLine(@"
░██████╗░█████╗░██████╗░███████╗███████╗███╗░░██╗░██████╗░█████╗░██╗░░░██╗███╗░░██╗██████╗░
██╔════╝██╔══██╗██╔══██╗██╔════╝██╔════╝████╗░██║██╔════╝██╔══██╗██║░░░██║████╗░██║██╔══██╗
╚█████╗░██║░░╚═╝██████╔╝█████╗░░█████╗░░██╔██╗██║╚█████╗░██║░░██║██║░░░██║██╔██╗██║██║░░██║
░╚═══██╗██║░░██╗██╔══██╗██╔══╝░░██╔══╝░░██║╚████║░╚═══██╗██║░░██║██║░░░██║██║╚████║██║░░██║
██████╔╝╚█████╔╝██║░░██║███████╗███████╗██║░╚███║██████╔╝╚█████╔╝╚██████╔╝██║░╚███║██████╔╝
╚═════╝░░╚════╝░╚═╝░░╚═╝╚══════╝╚══════╝╚═╝░░╚══╝╚═════╝░░╚════╝░░╚═════╝░╚═╝░░╚══╝╚═════╝░");
}

void MensagemBoasVindas() {
    Console.WriteLine("\nBem-vindo :)");
}

void Menu() {
    Console.WriteLine("Selecione uma opção:");
    Console.WriteLine("1. Criar banda;");
    Console.WriteLine("2. Listagem;");
    Console.WriteLine("3. Avaliar Banda;");
    Console.WriteLine("4. Mostrar avaliação da banda;");
    Console.WriteLine("0. Sair;");
}

void PaginaInicial() {
    NomeApp();
    Console.WriteLine("");
    MensagemBoasVindas();
    Console.WriteLine("\n");
    Menu();
}

PaginaInicial();

Console.WriteLine();
Console.Write("Opção: ");
int opcao = int.Parse(Console.ReadLine()!);

List<string> ListadeBandas = new List<string>{"U2","Coldplay","Imagine Dragons"};

switch (opcao) {
    case 1: CriarBanda(); break;
    case 2: ListarBandas(); break;
    case 3: Console.WriteLine("Avaliar banda:"); break;
    case 4: Console.WriteLine("Avaliação da banda (mostrar):"); break;
    case 0: Console.WriteLine("Sair!"); break;
    default: Console.WriteLine("Opção inválida"); break;
}

void CriarBanda() {
    Console.Clear();
    Console.WriteLine("Criação de banda:");
    Console.Write("Nome da banda: ");
    string nomeBanda = Console.ReadLine()!;
    ListadeBandas.Add(nomeBanda);
    Console.WriteLine($"A banda \"{nomeBanda}\" foi criada com sucesso!");
    Thread.Sleep(1500);
    Console.Clear();
    PaginaInicial();
    }


void ListarBandas() {
    Console.Clear();
    Console.WriteLine("Listagem de Bandas");
    Console.WriteLine("");
    for (int i=0; i<ListadeBandas.Count; i++) {
        Console.WriteLine(ListadeBandas[i]);
    }
}


Console.ReadLine();

Melhores Cumprimentos,

Emanuel Carvalho

solução!

Parece que a consola encerra automaticamente após selecionar a opção 2 porque o código não retorna ao loop principal depois de listar as bandas.

Para resolver isso, você pode adicionar um loop ao redor do menu principal para que o programa continue executando até que o usuário escolha a opção de sair.

using System;
using System.Collections.Generic;
using System.Threading;

void NomeApp() {
    Console.WriteLine(@"
░██████╗░█████╗░██████╗░███████╗███████╗███╗░░██╗░██████╗░█████╗░██╗░░░██╗███╗░░██╗██████╗░
██╔════╝██╔══██╗██╔══██╗██╔════╝██╔════╝████╗░██║██╔════╝██╔══██╗██║░░░██║████╗░██║██╔══██╗
╚█████╗░██║░░╚═╝██████╔╝█████╗░░█████╗░░██╔██╗██║╚█████╗░██║░░██║██║░░░██║██╔██╗██║██║░░██║
░╚═══██╗██║░░██╗██╔══██╗██╔══╝░░██╔══╝░░██║╚████║░╚═══██╗██║░░██║██║░░░██║██║╚████║██║░░██║
██████╔╝╚█████╔╝██║░░██║███████╗███████╗██║░╚███║██████╔╝╚█████╔╝╚██████╔╝██║░╚███║██████╔╝
╚═════╝░░╚════╝░╚═╝░░╚═╝╚══════╝╚══════╝╚═╝░░╚══╝╚═════╝░░╚════╝░░╚═════╝░╚═╝░░╚══╝╚═════╝░");
}

void MensagemBoasVindas() {
    Console.WriteLine("\nBem-vindo :)");
}

void Menu() {
    Console.WriteLine("Selecione uma opção:");
    Console.WriteLine("1. Criar banda;");
    Console.WriteLine("2. Listagem;");
    Console.WriteLine("3. Avaliar Banda;");
    Console.WriteLine("4. Mostrar avaliação da banda;");
    Console.WriteLine("0. Sair;");
}

void PaginaInicial() {
    NomeApp();
    Console.WriteLine("");
    MensagemBoasVindas();
    Console.WriteLine("\n");
    Menu();
}

List<string> ListadeBandas = new List<string> { "U2", "Coldplay", "Imagine Dragons" };

void CriarBanda() {
    Console.Clear();
    Console.WriteLine("Criação de banda:");
    Console.Write("Nome da banda: ");
    string nomeBanda = Console.ReadLine()!;
    ListadeBandas.Add(nomeBanda);
    Console.WriteLine($"A banda \"{nomeBanda}\" foi criada com sucesso!");
    Thread.Sleep(1500);
    Console.Clear();
}

void ListarBandas() {
    Console.Clear();
    Console.WriteLine("Listagem de Bandas");
    Console.WriteLine("");
    foreach (string banda in ListadeBandas) {
        Console.WriteLine(banda);
    }
    Console.WriteLine("\nPressione qualquer tecla para voltar ao menu...");
    Console.ReadKey();
    Console.Clear();
}

bool continuar = true;

while (continuar) {
    PaginaInicial();

    Console.WriteLine();
    Console.Write("Opção: ");
    int opcao = int.Parse(Console.ReadLine()!);

    switch (opcao) {
        case 1: CriarBanda(); break;
        case 2: ListarBandas(); break;
        case 3: Console.WriteLine("Avaliar banda:"); break;
        case 4: Console.WriteLine("Avaliação da banda (mostrar):"); break;
        case 0: Console.WriteLine("Sair!"); continuar = false; break;
        default: Console.WriteLine("Opção inválida"); break;
    }
}

Console.WriteLine("Pressione Enter para sair...");
Console.ReadLine();

Funcionou na perfeição. Muito obrigado :)