C# Can';如果语句不能正常工作,就不能得到简单的if语句
问题是,无论我尝试什么,只有当两者都为空时才会出现C# Can';如果语句不能正常工作,就不能得到简单的if语句,c#,C#,问题是,无论我尝试什么,只有当两者都为空时才会出现警报。如果其中一个具有值,则将resOne.Text设置为F 代码如下: private void btn_calculate_Click(object sender, EventArgs e) { // START OF AND OPERATION if (comboBox1.Text == "AND" && valueOne.Text != "" || valueTwo.Text !=
警报。如果其中一个具有值,则将resOne.Text
设置为F
代码如下:
private void btn_calculate_Click(object sender, EventArgs e)
{
// START OF AND OPERATION
if (comboBox1.Text == "AND" && valueOne.Text != "" || valueTwo.Text != "")
{
if (valueOne.Text == "T" || valueOne.Text == "1")
{
if (valueTwo.Text == "T" || valueTwo.Text == "1")
{
resOne.Text = "T";
resOne.BackColor = Color.LawnGreen;
resLineOne.BackColor = Color.LawnGreen;
}
else
{
resOne.Text = "F";
resOne.BackColor = Color.Salmon;
resLineOne.BackColor = Color.Salmon;
}
}
else
{
resOne.Text = "F";
resOne.BackColor = Color.Salmon;
resLineOne.BackColor = Color.Salmon;
}
}
else if (valueOne.Text == "" || valueTwo.Text == "")
{
MessageBox.Show("Error: Empty Fields");
}
}
有什么想法吗?首先,让我们简单地说一下
if (valueOne.Text == "" || valueTwo.Text == "")
MessageBox.Show("Error: Empty Fields");
}
else{
// do something
}
private void btn_calculate_Click(object sender, EventArgs e)
{
if (comboBox1.Text == "AND" && valueOne.Text != "" || valueTwo.Text != "")
{
//SO This bit assumes everything has a value in
if (valueOne.Text == "T" || valueOne.Text == "1" || valueTwo.Text == "T" || valueTwo.Text == "1)
{
resOne.Text = "T";
resOne.BackColor = Color.LawnGreen;
resLineOne.BackColor = Color.LawnGreen;
}
else
{
resOne.Text = "F";
resOne.BackColor = Color.Salmon;
resLineOne.BackColor = Color.Salmon;
}
}
else if (valueOne.Text == "" || valueTwo.Text == "")
{
MessageBox.Show("Error: Empty Fields");
}
}
如何设置文本框的名称?那可能是你的问题。如果它们不完全是T
或1
,则会导致问题。可能值得尝试Trim()
方法以确保没有空格。这不是IF声明的问题
如果将文本框设置为“F”,则以下内容没有问题:
if (comboBox1.Text == "AND" && valueOne.Text != "" || valueTwo.Text != "")
您的错误发生在以下位置:
if (valueOne.Text == "T" || valueOne.Text == "1" || valueTwo.Text == "T" || valueTwo.Text == "1)
我建议调试它并逐步执行:)首先尝试确定空字段。我还将使用String.IsNullOrEmpty
检查空字符串
if (String.IsNullOrEmpty(valueOne.Text) || String.IsNullOrEmpty(EmptyvalueTwo.Text))
{
MessageBox.Show("Error: Empty Fields");
}
else
{
if (comboBox1.Text.equals("AND"))
{
if (valueOne.Text.equals("T") || valueOne.Text.equals("1"))
{
if (valueTwo.Text.equals("T") || valueTwo.Text.equals("1"))
{
resOne.Text = "T";
resOne.BackColor = Color.LawnGreen;
resLineOne.BackColor = Color.LawnGreen;
}
else
{
resOne.Text = "F";
resOne.BackColor = Color.Salmon;
resLineOne.BackColor = Color.Salmon;
}
}
else
{
resOne.Text = "F";
resOne.BackColor = Color.Salmon;
resLineOne.BackColor = Color.Salmon;
}
}
}
这条线是主要问题
if (comboBox1.Text == "AND" && valueOne.Text != "" || valueTwo.Text != "")
我假设您的组合框。文本总是设置为“和”
然后
什么时候
valueOne.Text为空,valueTwo.Text非空
你完成了任务的第二部分
valueTwo.Text != ""
comboBox1.Text == "AND" && valueOne.Text != ""
什么时候
valueOne.Text非空,valueTwo.Text空
您完成了或的第一部分
valueTwo.Text != ""
comboBox1.Text == "AND" && valueOne.Text != ""
因此,即使其中一个有输入,您也无法转到警报消息。
应该是
if (comboBox1.Text == "AND" && valueOne.Text != "" && valueTwo.Text != "")
否则,如果仅在表达式为假后进行表达式检查我将替换valueOne.Text!=带有的“
”!String.IsNullOrEmpty(valueOne.Text)
对于valueTwoNow同样,当我看到它时,它是如此明显。。。非常感谢您,如果所需的elseif语句无法执行,那只是因为IF语句或其他elseif语句在它为真之前。不客气。