请考虑以下代码段:
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.MaxLength > 0)
{
textBox2.Text = Convert.ToBoolean(Math.Sqrt(textBox1.MaxLength)).ToString();
}
else if (textBox1.MaxLength < 32768)
{
textBox2.Text = Convert.ToBoolean(Math.Sqrt(textBox1.MaxLength)).ToString();
}
}
Run Code Online (Sandbox Code Playgroud)
为什么不评估第二个条件(小于条件)?这也是事实,不是吗?
如果我必须使第二个工作在相同的条件下,必须做出哪些微小的改变?
第二个条件未被检查,因为else只有在评估前面的条件时才会评估语句false.有几种方法可以解决这个问题,其中一些方法可以在其他答案中找到.一种方法是使用单个if语句,它结合了两个条件:
if (textBox1.MaxLength > 0 && textBox1.MaxLength < 32768)
{
textBox2.Text = Convert.ToBoolean(Math.Sqrt(textBox1.MaxLength)).ToString();
}
Run Code Online (Sandbox Code Playgroud)
else if 仅在第一个条件不满足时检查.
如果你想让它们都成真,你应该这样做
if(textBox1.MaxLength > 0 && textBox1.MaxLength < 32768)
{
// do stuff here
}
Run Code Online (Sandbox Code Playgroud)