如果条件AND / OR逻辑失败-C#

时间:2018-07-18 12:30:20

标签: c#

我有2个组合框和7个文本框。

如果用户在所有文本框中提供输入为0并已在combox框中选择了“休假”或“假期”,则该逻辑应满足。

如果他们在组合框中选择了“假日/假期”以外的其他项目。它应该扔其他部分。

我已经在C#中编写了以下条件,但是即使所有条件都满足,代码也只会执行else条件。

 if (((comboBox3.SelectedText == "Leave") || 
     (comboBox3.SelectedText == "Holiday")) && 
     textBox2.Text != "0" && 
     textBox3.Text != "0" && 
     textBox4.Text != "0" && 
     textBox5.Text != "0" && 
     textBox6.Text != "0" && 
     textBox7.Text != "0" && 
     textBox10.Text != "0")
{
    MessageBox.Show("Sucess");
}
else
{
    MessageBox.Show("Select Leave/Holiday since all the provided Data is 0");
}

编辑:

根据请求,输出为:

状态

0 0 0 0 0 0 0

2 个答案:

答案 0 :(得分:1)

尝试一下

if (((comboBox3.SelectedText == "Leave") || 
     comboBox3.SelectedText == "Holiday")) && 
     textBox2.Text == "0" && 
     textBox3.Text == "0" && 
     textBox4.Text == "0" && 
     textBox5.Text == "0" && 
     textBox6.Text == "0" && 
     textBox7.Text == "0" && 
     textBox10.Text == "0")
{
    MessageBox.Show("Sucess");
}
else
{
    MessageBox.Show("Select Leave/Holiday since all the provided Data is 0");
}

以此替换您的代码,并将结果从“输出”窗口/消息框添加到上面的问题中

if (((comboBox3.SelectedText == "Leave") || 
     comboBox3.SelectedText == "Holiday")) && 
     textBox2.Text == "0" && 
     textBox3.Text == "0" && 
     textBox4.Text == "0" && 
     textBox5.Text == "0" && 
     textBox6.Text == "0" && 
     textBox7.Text == "0" && 
     textBox10.Text == "0")
{
    MessageBox.Show("Success");
}
else
{
    StringBuilder sb = new StringBuilder();
    sb.AppendLine("State");
    sb.AppendLine(comboBox3.SelectedText);
    sb.AppendLine(textBox2.Text);
    sb.AppendLine(textBox3.Text);
    sb.AppendLine(textBox4.Text);
    sb.AppendLine(textBox5.Text);
    sb.AppendLine(textBox6.Text);
    sb.AppendLine(textBox7.Text);
    sb.AppendLine(textBox10.Text);
    Console.WriteLine(sb.ToString());
    MessageBox.Show(sb.ToString());
}

好的。您正在使用combobox1.SelectedText,它为空!

尝试改用combobox1.Text ...

if (((comboBox3.Text == "Leave") || 
     comboBox3.Text == "Holiday")) && 
     textBox2.Text == "0" && 
     textBox3.Text == "0" && 
     textBox4.Text == "0" && 
     textBox5.Text == "0" && 
     textBox6.Text == "0" && 
     textBox7.Text == "0" && 
     textBox10.Text == "0")
{
    MessageBox.Show("Success");
}
else
{
    MessageBox.Show("Select Leave/Holiday since all the provided Data is 0");
}

答案 1 :(得分:0)

如用户“ dasblinkenlight”所述,您的代码在实际状态下转换为: “如果用户选择请假或休假,并且所有输入均不同于0,则为'成功'。”

但是您的业务逻辑指出:“如果用户选择请假或假期,并且所有输入等于0,则表示成功”。

只需将“!=”运算符更改为“ ==”运算符,就可以了。