Ошибка проверки проблемы - PullRequest
       20

Ошибка проверки проблемы

0 голосов
/ 09 сентября 2010

По большей части это работает, проблема в том, что всплывающее окно появляется для Андреа и Бретани, но оно работает правильно для Эрика.Если я попытаюсь поместить оператор else после каждого оператора if, он все еще всплывает на Бретани и Андреа, но затем также появляется на Эрике.Может кто-нибудь сказать мне, что я делаю не так.

    private void button1_Click(object sender, EventArgs e)
    {
        String Andrea;
        String Brittany;
        String Eric;
        if (textBox1.Text == "Andrea")
        {     
            Commission.Text = (Convert.ToDouble(textBox2.Text) / 10).ToString();
        }

        if (textBox1.Text == "Brittany")
        {
            Commission.Text = (Convert.ToDouble(textBox2.Text) / 10).ToString();
        }


        if (textBox1.Text == "Eric")
        {
            Commission.Text = (Convert.ToDouble(textBox2.Text) / 10).ToString();
        }
        else
        {
            MessageBox.Show("The spelling of the name is incorrect", "Bad Spelling");
        }   

        {




        } 

    }

Ответы [ 4 ]

2 голосов
/ 09 сентября 2010

попробуйте это ... сохраняя список имен, вы можете легко расширить охватываемые имена и больше не писать код.Просто добавьте новое имя в список имен

List<string> names = new List<string>() // list of names to check for
{                                       // if a name is not in this list
   "Andrea","Brittany","Eric"           // the error message will show
};                                      // otherwise, the calculation will be performed

if ( names.Contains(TextBox1.Text) )
{
    Commission.Text = (Convert.ToDouble(textBox2.Text) / 10).ToString();
}
else
{
    MessageBox.Show("The spelling of the name is incorrect", "Bad Spelling");
}
2 голосов
/ 09 сентября 2010

попробуйте использовать else, если это так.

if (textBox1.Text == "Andrea")
{     
    Commission.Text = (Convert.ToDouble(textBox2.Text) / 10).ToString();
}
else if (textBox1.Text == "Brittany")
{
    Commission.Text = (Convert.ToDouble(textBox2.Text) / 10).ToString();
}
else if (textBox1.Text == "Eric")
{
    Commission.Text = (Convert.ToDouble(textBox2.Text) / 10).ToString();
}
else
{
    MessageBox.Show("The spelling of the name is incorrect", "Bad Spelling");
} 
1 голос
/ 09 сентября 2010
switch(textBox1.Text)
{
    case "Andrea" : Commission.Text = (Convert.ToDouble(textBox2.Text) / 10).ToString();
    case "Brittany" : Commission.Text = (Convert.ToDouble(textBox2.Text) / 10).ToString();
    case "Eric" : Commission.Text = (Convert.ToDouble(textBox2.Text) / 10).ToString();
    default: MessageBox.Show("The spelling of the name is incorrect", "Bad Spelling");
}
0 голосов
/ 09 сентября 2010

Что ж, я не знаю о ваших предыдущих попытках, но в настоящее время каждая из них обрабатывается отдельно.так что если textBox1.Text! = "Эрик", то остальное, присоединенное к Эрику, будет запущено, и в этом случае покажет MessageBox, независимо от того, совпадали ли два других оператора if.

Возможно, у вас возникла ошибка в вашем другом случае?Попробуйте, как написали некоторые из вышеперечисленных людей, и посмотрите, работает ли это.

...