none
Uso do comando return ou qualquer outro que volte a etapa anterior conforme uma condição RRS feed

  • Pergunta

  • Boa tarde pessoal,

    Minha dificuldade é a seguinte:

    Caso m > 5 , meu programa é inválido e eu preciso voltar para que a pessoa entre com um valor menor que 5 e assim o programa continua.

    Console.Write("ESCREVA A QUANT. DE MOLAS DA ESTRUTURA:" );
    
                int m; m = int.Parse(Console.ReadLine());
    
                Console.WriteLine("");
    
                if (m > 5)
                {
                    Console.Write("QUANT. MÁX. DE MOLAS DO PROGRAMA: 5   ");
    
                            
                }
    
                else ...

    Qual a melhor forma?

    Obrigado e desculpe o nível iniciante da duvida..rs

    Abraços

    quinta-feira, 21 de fevereiro de 2013 19:27

Respostas

  • Daniel,

    Coloque dentro de um "while" seu código, quando a variável for false, que dizer que ele não precisa digitar novamente, pois já atende a condição (ser menor ou igual a 5)

    bool devoContinuarExecutando = true;
    
    while (devoContinuarExecutando)
    {
        Console.WriteLine("ESCREVA A QUANT. DE MOLAS DA ESTRUTURA:");
    
        int m; m = int.Parse(Console.ReadLine());
    
        Console.WriteLine("");
    
        if (m > 5)
        {
            Console.Write("QUANT. MÁX. DE MOLAS DO PROGRAMA: 5   ");
    
        }
        else
        {
            //Se caiu aqui é porque ele digitou um valor menor ou igual a 5
            devoContinuarExecutando = false;
        } 
    }


    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/


    • Sugerido como Resposta Murilo Kunze quinta-feira, 21 de fevereiro de 2013 19:37
    • Editado Vitor Mendes quinta-feira, 21 de fevereiro de 2013 19:43
    • Marcado como Resposta Daniel Ferraz quinta-feira, 21 de fevereiro de 2013 20:42
    quinta-feira, 21 de fevereiro de 2013 19:36

Todas as Respostas

  • Daniel,

    Coloque dentro de um "while" seu código, quando a variável for false, que dizer que ele não precisa digitar novamente, pois já atende a condição (ser menor ou igual a 5)

    bool devoContinuarExecutando = true;
    
    while (devoContinuarExecutando)
    {
        Console.WriteLine("ESCREVA A QUANT. DE MOLAS DA ESTRUTURA:");
    
        int m; m = int.Parse(Console.ReadLine());
    
        Console.WriteLine("");
    
        if (m > 5)
        {
            Console.Write("QUANT. MÁX. DE MOLAS DO PROGRAMA: 5   ");
    
        }
        else
        {
            //Se caiu aqui é porque ele digitou um valor menor ou igual a 5
            devoContinuarExecutando = false;
        } 
    }


    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/


    • Sugerido como Resposta Murilo Kunze quinta-feira, 21 de fevereiro de 2013 19:37
    • Editado Vitor Mendes quinta-feira, 21 de fevereiro de 2013 19:43
    • Marcado como Resposta Daniel Ferraz quinta-feira, 21 de fevereiro de 2013 20:42
    quinta-feira, 21 de fevereiro de 2013 19:36
  • Meu problema agora é que querendo fazer um switch para variável m, com case 1 a case 5, pois cada caso tem um código, o erro acusa tipo da variável m inválida.

    //continuando.. switch (m) { case ("1"): Console.Write("Escreva a rigidez da mola 1: "); double k1; k1 = Convert.ToDouble(Console.ReadLine());

    // não aceita o case 1 para m


    quinta-feira, 21 de fevereiro de 2013 21:16
  • Daniel

    Certamente a sua variável "m" não esta entre os tipo suportado pela a estrutura switch/case. Tente colocar m.ToString()


    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/

    quinta-feira, 21 de fevereiro de 2013 22:45