Jump to content

Dúvida sobre C#


Tythtyth
 Share

Recommended Posts

Há alguma forma de por exemplo, dar um nome a uma condição e depois executar um comando após várias coisas se essa condição for verdadeira?

Por exemplo:

   

if (textBox1.TextLength == 0)
                MessageBox.Show("You must fill in all the boxes before you can calculate your BMI", "Error");
            else if (textBox2.TextLength == 0)
                MessageBox.Show("You must fill in all the boxes before you can calculate your BMI", "Error"); 

*AQUI NO MEIO TINHA CÓDIGO*

depois se a condição acima for verdadeira executar este código:

MessageBox.Show("Your Body Mass Index is: " + IMC.ToString() + Environment.NewLine + "According to your BMI you are " + obesidade.ToString() + ".", "Body Mass Index");

Sou um bocado noob, gostava de ajuda  😉

Não sei se importa mas estou a trabalhar em Windows Forms Application

Link to comment
Share on other sites

Basta adicionares um "Else" no fim desse bloco que mostraste.

if (textBox1.TextLength == 0)
                MessageBox.Show("You must fill in all the boxes before you can calculate your BMI", "Error");
            else if (textBox2.TextLength == 0)
                MessageBox.Show("You must fill in all the boxes before you can calculate your BMI", "Error"); 
            else
                MessageBox.Show("Your Body Mass Index is: " + IMC.ToString() + Environment.NewLine + "According to your BMI you are " + obesidade.ToString() + ".", "Body Mass Index");

Link to comment
Share on other sites

Experimenta isto (não testei):

List<Textbox> lst = new List<Textbox>();
lst.Add(textBox1);
lst.Add(textBox2);
// Depois podes acrescentar as que quiseres...

// Vai verificar se as caixas de texto são válidas ou não. Por omissão são
bool valido = true;
foreach(Textbox t in lst)
{
   // Percorre cada textbox declada e valida-a. Se não for válida, sai do ciclo imediatamente
   if(t.TextLength == 0)
   {
      valido = false;
      break;
   }
}
if (!valido)
{
   MessageBox.Show("You must fill in all the boxes before you can calculate your BMI", "Error"); 
}
else
{
   MessageBox.Show("Your Body Mass Index is: " + IMC.ToString() + Environment.NewLine + "According to your BMI you are " + obesidade.ToString() + ".", "Body Mass Index");
}

Pedro Martins

Sharing is Knowledge!

http://www.linkedin.com/in/rechousa

Link to comment
Share on other sites

Versão corrigida com a nova especificação 😉

List<Textbox> lst = new List<Textbox>();
lst.Add(textBox1);
lst.Add(textBox2);
// Depois podes acrescentar as que quiseres...

foreach(Textbox t in lst)
{
   // Percorre cada textbox declada e valida-a. Se não for válida, sai do ciclo imediatamente
   if(t.TextLength == 0)
   {
         MessageBox.Show("You must fill in all the boxes before you can calculate your BMI", "Error");
        return;
   }
}
MessageBox.Show("Your Body Mass Index is: " + IMC.ToString() + Environment.NewLine + "According to your BMI you are " + obesidade.ToString() + ".", "Body Mass Index");

Pedro Martins

Sharing is Knowledge!

http://www.linkedin.com/in/rechousa

Link to comment
Share on other sites

O código está assim, tive de mudar para não dar erro, mas mesmo assim não funciona. Podem-me explicar porquê?

List<TextBox> lst = new List<TextBox>();
            lst.Add(textBox1);
            lst.Add(textBox2);



            bool valido = true;
            foreach (TextBox t in lst)
            {

                if (t.TextLength == 0)
                {
                    valido = false;
                    MessageBox.Show("You must fill in all the boxes before you can calculate your BMI", "Error");
                    return;
                }
            }

            if(!valido == true)

            {
                int alturametros = Int32.Parse(textBox1.Text);
                double altura = alturametros * 0.01;
                int peso = Int32.Parse(textBox2.Text);
                double IMC = peso / (altura * altura);
                int nivel = 0;
                string obesidade = "";

                if (IMC < 18.5)
                    nivel = 1;
                else if (IMC < 24.9)
                    nivel = 2;
                else if (IMC < 29.9)
                    nivel = 3;
                else if (IMC > 30)
                    nivel = 4;

                if (nivel == 1)
                    obesidade = "underweight";
                else if (nivel == 2)
                    obesidade = "normal";
                else if (nivel == 3)
                    obesidade = "overweight";
                else if (nivel == 4)
                    obesidade = "obese";

                    MessageBox.Show("Your Body Mass Index is: " + IMC.ToString() + Environment.NewLine + "According to your BMI you are " + obesidade.ToString() + ".", "Body Mass Index");
Link to comment
Share on other sites

Olá,

Não precisas da variável valido.

Se reparares, na 2a versão do código que coloquei, eu tirei a variável.

E porque é que eu tirei? Porque ela não é necessária.

Se, no ciclo, houver uma caixa de texto que não seja válida, é apresentada a tal mensagem de erro ao utilizador e o programa sai do método (o return faz isso).

Ou seja, depois do ciclo, não precisas de validar é válido ou não é válido, pois é sempre válido. (se não fosse, teria saído anteriormente, certo?)

Pedro Martins

Sharing is Knowledge!

http://www.linkedin.com/in/rechousa

Link to comment
Share on other sites

outra duvida.. será possível chamar um código c++ num código c#  por exemplo usar a biblioteca nativa de SDL que esta em c++ no programa em c#

Citação

A ironia é o primeiro indício de que a consciência se tornou consciente.

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.